Poco C++ライブラリを使用してMicrosoft SQL Server 2014データベースに接続できます。あなたは、Windows SDKの一部であるインストールされているODBCドライバを入手したら、次のコードは、このような など、すべての基本的な操作を行う必要があります - を作成 - を読む - を更新 -
#include <iostream>
#include <string>
#include <sstream>
#include "Poco/Data/RecordSet.h"
#include "Poco/Data/Session.h"
#include "Poco/Data/ODBC/Connector.h"
using namespace std;
using namespace Poco::Data;
bool AddUser(Session& session, const size_t& USER_ID, const string& FIRST_NAME, const string& LAST_NAME); // [C]reate
void PrintUsers(Session& session); // [R]etrieve
bool UpdateLastName(Session& session, const string& FIRST_NAME, const string& NEW_LAST_NAME); // [U]pdate
bool DeleteUser(Session& session, const size_t& USER_ID); // [D]elete
int main()
{
try
{
cout << "Testing Poco C++ with MS SQL Server" << endl;
Poco::Data::ODBC::Connector::registerConnector();
const string CONNECTION_STRING("DRIVER={SQL Server};Server=DESKTOP-32BKOVJ\\SQLEXPRESS;Database=Test2;User ID=sa;Password=abc");
//const string CONNECTION_STRING("DSN=PocoMsSQLTest;Uid=sa;Pwd=abc");
Session session("ODBC", CONNECTION_STRING);
if (session.isConnected())
{
PrintUsers(session);
cout << "\n" << endl;
AddUser(session, 5, "Loki", "Moki");
PrintUsers(session);
cout << "\n" << endl;
UpdateLastName(session, "Loki", "Poki");
PrintUsers(session);
cout << "\n" << endl;
DeleteUser(session, 5);
PrintUsers(session);
cout << "\n" << endl;
}
else
{
cerr << "Session not able to connect" << endl;
}
}
catch (const exception& e)
{
cerr << "Exception: " << e.what() << endl;
}
////////////////////////////////////////////////////////
Poco::Data::ODBC::Connector::unregisterConnector();
return 0;
}
// Create
bool AddUser(Session& session, const size_t& USER_ID, const string& FIRST_NAME, const string& LAST_NAME)
{
Statement select(session);
stringstream ss;
ss << "INSERT INTO Users (UserID, FirstName, LastName) VALUES (";
ss << USER_ID << ", " << "\'" << FIRST_NAME << "\'" << ", " << "\'" << LAST_NAME << "\')";
const string& SQL = ss.str();
select << SQL;
return select.execute();
}
// Retrieve
void PrintUsers(Session& session)
{
Statement select(session);
select << "SELECT * FROM Users";
select.execute();
RecordSet rs(select);
bool more = rs.moveFirst();
if (more)
{
cout << rs.columnName(0) << "\t" << rs.columnName(1) << "\t" << rs.columnName(2) << endl;
}
while (more)
{
cout << rs[0].convert<string>() << "\t" << rs[1].convert<string>() << "\t\t" << rs[2].convert<string>() << endl;
more = rs.moveNext();
}
}
// Update
bool UpdateLastName(Session& session, const string& FIRST_NAME, const string& NEW_LAST_NAME)
{
Statement select(session);
stringstream ss;
ss << "UPDATE Users SET LastName=" << "\'" << NEW_LAST_NAME << "\'" << " WHERE FirstName=" << "\'" << FIRST_NAME << "\'";
const string& SQL = ss.str();
select << SQL;
return select.execute();
}
// Delete
bool DeleteUser(Session& session, const size_t& USER_ID)
{
Statement select(session);
stringstream ss;
ss << "DELETE FROM Users WHERE UserID = " << USER_ID;
const string& SQL = ss.str();
select << SQL;
return select.execute();
}
私はは、connection_stringを削除しますODBCドライバを直接使用してデータベースに接続しています。 DSNを使用してデータベースに接続する場合は、このCONNECTION_STRINGにコメントし、下のコメントを外します。
私は、DSNとWindows 10での作成方法について少し研究しました。私の所見は以下の通りです。
DSNとは何ですか?
https://en.wikipedia.org/wiki/Data_source_nameは、ODBCデータソース名(DSN)を設定し、ODBCデータソースのODBC 2.(32ビット)タブ "ユーザーDSN" の下 3. 1. Windowsの10検索の作成を参照してください、 [追加]をクリックします。 新しいデータソースの作成ウィザードが起動します。 4. [SQL Server]を選択し、[完了]をクリックします。 5.次のウィンドウで - 名前を付けます。これはDSNです - 説明を与える - サーバーに関連付けられたドロップダウンをクリックしてください - 数秒待ってください - コンピュータまたはネットワーク上のデータベースに が表示されます - 接続するデータベースサーバーを選択します。 - 次のウィンドウ で次 6.をクリックしてください - SQL Server認証 を選択 - そのデータベース のためにあなたのログインID(ユーザー名)とパスワードを入力します - 次のウィンドウ で次 7.をクリックしてください - 選択して、「デフォルトを変更データベースに接続するデータベースを指定します。 - 次へをクリックしてください 8.次のウィンドウでは、何も変更する必要はありません。 9.すべてのDSN情報を含む新しいウィンドウが表示されます。 10. DSN接続をテストするには、 "Test Data Source ..."をクリックしてください。 - すべてがOKならば、新しいウィンドウが表示されます。 "TESTS COMPLETED SUCCUSSFULLY!" - OKをクリックして結果ウィンドウを終了します。 11.もう一度[OK]をクリックして設定を完了します。 12。ユーザーデータソースの下のメインウィンドウに、新しく作成されたDSNが表示されます。 13. [OK]をクリックして終了します。
出典:https://www.youtube.com/watch?v=ehVFtmhPwxs