新しく作成した C++ アプリからローカルの SQL Server 2008 インスタンスに接続しようとしています。私はまだ C++ を学んでいるので、明らかな何かが欠けている可能性があります。
私は Microsoft Visual Studio 2010 を使用しており、Win32 コンソール アプリを空のプロジェクトとして作成し、main.cpp を自分で追加しています。
SQL Server インスタンスは稼働中で、SQL または統合認証を使用して他のマシンから接続できます。また、.net オブジェクトを使用して C# アプリケーションを接続することもできます。
ただし、C++ では接続を取得できず、常に失敗したと報告されます。
これまでの私のコードは次のとおりです
#include <iostream>
#include <windows.h>
#include <sqltypes.h>
#include <sql.h>
#include <sqlext.h>
int main() {
SQLHENV env;
SQLHDBC dbc;
SQLHSTMT stmt;
SQLRETURN ret;
SQLSMALLINT columns;
int row = 0;
/* Allocate an environment handle */
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
/* We want ODBC 3 support */
SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0);
/* Allocate a connection handle */
SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
/* Connect to the DSN */
SQLDriverConnectW(dbc, NULL, L"DRIVER={SQL Server};SERVER=(local)\DB1;DATABASE=master;UID=sa;PWD=password;", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);
/* Check for success */
if(SQL_SUCCESS!=SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt))
{
std::cout << "Failed to connect";
}
std::cin.get();
return 0;
}
http://www.easysoft.com/developer/languages/c/odbc_tutorial.htmlなどのいくつかのオンライン例を見て、これに基づいています。
常に、有効な資格情報を使用しても、私のコードはブロックに接続できませんでした。上記のリンクされた記事から extract_error を使用しようとしても、エラー メッセージはまったく表示されません。
ここで何が間違っていますか?ありがとう