先生が与えたサンプルプログラムに続いて最初のデータベースアプリケーションを作成していますが、サンプルプログラムも自分のプログラムもデータベースに接続できません。 (JDBCサンプルプログラムでは、サーバーが正常に動作するはずです)。Visual C++ ODBCアプリケーションがMySQLデータベースに接続できません
がDBModule::DBModule(string server, string database)
{
this->server = server; //"localhost" is loaded into it
this->database = database; //"test" is loaded into it, of course it exists on the server
SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, env, &dbc);
command = "DRIVER={MySQL ODBC 3.51 Driver};SERVER="+this->server+";DATABASE="+this->database+";";
//command looks like this now:
//"DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=test;"
ret = SQLDriverConnect(dbc, NULL, (SQLWCHAR *)command.c_str(), SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);
if (!SQL_SUCCEEDED(ret)) {
err += CONNECT_DATABASE*DATABASE_UNREACHABLE;
good = false;
return;
} else {
good = true;
}
SQLAllocHandle(SQL_HANDLE_STMT, dbc, &stmt);
command = sysToStd(DBINIT);
SQLPrepare(stmt, (SQLWCHAR *)command.c_str(), SQL_NTS);
ret = SQLExecute(stmt);
}
のSQLDriverConnectでRETを取得します。それは、接続が行われるべき場所だし、ここで
SQLHENV env;
SQLHDBC dbc;
SQLHSTMT stmt;
SQLRETURN ret;
は私のデータベースハンドラクラスのコンストラクタです:
私は、クラス宣言でこれらのVARSを持っています-1の値。
私はすべてのデフォルト設定でサーバーとして最新のXAMPPを使用しています(私は "root"なのでパスワードはありません)。私は接続文字列にUID = rootを追加しようとしましたが、同じことをしました。
ありがとうございました。
mySQL ODBCコネクタのユーザーインターフェイスのODBCドライバ構成には、「テスト接続」ボタンがあります。あなたはそれを試しましたか? –
私はそれを持っているとは思わない... これは私がこれを動作させるために何かをインストールする必要があることを意味しますか? 申し訳ありませんが、私はこれで本当にnoobです。私が知っているのは、上記のコードに書かれています:P ありがとう –