我从未使用过ODBC直到今天都没有使用过MSSQL。 我有一个运行在89.12.12.12(示例)的MSSQL服务器。我想使用C。
连接到它现在我设法输入以下代码:
SQLRETURN ret;
SQLHENV henv;
SQLHDBC hdbc;
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) {
ret = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER *)SQL_OV_ODBC3, 0);
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) {
ret = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) {
SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)5, 0);
ret = SQLConnect(hdbc, (SQLCHAR*) "89.12.12.12", SQL_NTS, (SQLCHAR*) "root", 5, (SQLCHAR*) "t00r", 9);
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) {
MessageBoxA(0, "Connect ok", NULL, 0);
}
else MessageBoxA(0, "Connect failed!", NULL, 0);
}
}
但是没有建立连接,我可以指定IP地址。谢谢!
答案 0 :(得分:0)
我想帮助你。但我不知道在哪里指定远程IP地址。 我在我的localhost服务器中设置了我的ODBC DSN。我只是像这样指定了DSN名称。
ret = SQLConnect(hdbc, (SQLCHAR*) "ODBC DSN name", SQL_NTS, (SQLCHAR*) "root", 5, (SQLCHAR*) "t00r", 9);
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) {
MessageBoxA(0, "Connect ok", NULL, 0);
}
else MessageBoxA(0, "Connect failed!", NULL, 0);
所以,我建议你这样做知识。 (我没试过它!)
ret = SQLConnect(hdbc, (SQLCHAR*) "ipaddress/ODBC DSN name", SQL_NTS, (SQLCHAR*) "root", 5, (SQLCHAR*) "t00r", 9);
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO) {
MessageBoxA(0, "Connect ok", NULL, 0);
}
else MessageBoxA(0, "Connect failed!", NULL, 0);