使用ODBC连接到MSSQL服务器

时间:2015-05-21 15:12:48

标签: c sql-server visual-studio-2013 odbc

我从未使用过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地址。谢谢!

1 个答案:

答案 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);