SQLSTATE HY024 带有错误消息 [Microsoft][ODBC Driver Manager] 参数值无效

问题描述 投票:0回答:2

我正在尝试通过 C++ 程序连接到 Azure SQL。然而它失败了,我发现了

SQLGetDiagRec
SQLGetDiagField
的错误。 SQLSTATE 为
HY024
,并带有错误消息
[Microsoft][ODBC Driver Manager] Invalid argument value

下面是我正在使用的驱动程序连接字符串

    const char* cConnectString = "Driver=ODBC Driver 18 for SQL Server;Server=tcp:tmusqldev.database.windows.net,1433;Uid=tmu-admin;Pwd={PASSWORD};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;";  

   SQLDriverConnect( // SQL_NULL_HDBC  
                    hdbc,
                    nullptr,
                    (SQLWCHAR*)cConnectString,
                    strlen(cConnectString),
                    OutConnStr,
                    255,
                    &OutConnStrLen,
                    SQL_DRIVER_PROMPT);

当我测试来自

ODBC Data Source Administrator 
的连接时,它通过了。我已附上相同的屏幕截图。

有人可以建议这里可能出了什么问题吗?我尝试过添加和删除多个参数,但它有相同的错误。

azure-sql-database odbc odbc-sql-server-driver
2个回答
0
投票

请尝试以下操作:

// Connect to the driver.  Use the connection string if supplied
// on the input, otherwise let the driver manager prompt for input.

TRYODBC(hDbc,
    SQL_HANDLE_DBC,
    SQLDriverConnect(hDbc,
                     GetDesktopWindow(),
                     pwszConnStr,
                     SQL_NTS,
                     NULL,
                     0,
                     NULL,
                     SQL_DRIVER_COMPLETE));

在这里您将找到用于连接到 Azure SQL 的完整 C++ ODBC 示例。


0
投票

不确定,这是否有帮助,而且我没有找到答案,但与我们的 SQL 管理员/开发人员进行了一些挖掘,他发现该实例正在同步或繁忙。我切换到另一个实例并且它有效。全部归功于 KvdW!

错误:('HY024','[HY024] [Microsoft][ODBC Driver 18 for SQL Server]属性值无效')

© www.soinside.com 2019 - 2024. All rights reserved.