none
SQLConfigDataSource添加ODBC的字符串问题 RRS feed

  • 问题

  • WCHAR* wszServerIP = L"192.168.1.2";
    WCHAR wszSQL[MAX_PATH] = { 0 };
    StringCchPrintf(wszSQL, MAX_PATH, L"DSN=REMOTE_DSN\\0 SERVER=%s\\0",  wszServerIP);
    SQLConfigDataSource(NULL, ODBC_ADD_DSN, L"SQL Server", wszSQL);

    如上示例代码,SQLConfigDataSource的最后一个参数,DSN、SERVER字段的最后必须加\0,于是这就涉及到拼接字符串和转义字符问题了。无论使用\0还是\\0,最终结果都不行!!喵的就不用使用分号吗!!!

    我是快乐的小鱼^_^

    2017年2月9日 3:27

答案

  • Hi,

    感谢在MSDN论坛发帖。

    >>如上示例代码,SQLConfigDataSource的最后一个参数,DSN、SERVER字段的最后必须加\0,于是这就涉及到拼接字符串和转义字符问题了。无论使用\0还是\\0,最终结果都不行!!喵的就不用使用分号吗!!!

    根据以下文档,ConfigDSN从安装程序DLL接收关键字-值对形式的属性列表的连接信息。 每对都以空字节结束,整个列表以空字节结束。(即,两个空字节标记列表的结尾。)

    https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/configdsn-function

    希望对你有所帮助。

    Best Regards,
    Sera Yu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年2月9日 5:48