Poco C++ kütüphanesini kullanarak Microsoft SQL Server 2014 veritabanına bağlanabiliyorum. Windows SDK bir parçası olan yüklü ODBC sürücülerini edindikten sonra, aşağıdaki kodu, gibi tüm temel işlemleri yapmalıdır - oluşturma - Oku - Güncelleme -
#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();
}
Ben connection_string Sil kullanarak veritabanına bağlanmak için doğrudan ODBC sürücüleri kullanıyor. Veritabanına bağlanmak için bir DSN kullanmak istiyorsanız, bu CONNECTION_STRING yorumunu yapın ve aşağıdakileri kaldırın.
DSN nedir ve Windows 10'da nasıl oluşturulacağı üzerine biraz araştırma yaptım. Bulgularım aşağıda verilmiştir.
DSN nedir?
https://en.wikipedia.org/wiki/Data_source_name bir ODBC veri kaynağı adı (DSN) ayarlama ODBC veri kaynakları üzerinde ODBC 2. Click (32-bit) sekmesi "Kullanıcı DSN" altında 3 için 1. Windows 10 arama oluşturma Bkz, Ekle Yeni Veri Kaynağı Oluştur sihirbazı başlayacaktır. 4. SQL Server'ı seçin ve Finish 5'i tıklayın. Sonraki pencerede - Bir ad verin. Bu DSN - Verme açıklaması - Sunucu ile ilişkili açılır aşağı tıklayın - Birkaç saniye bekleyin - Bilgisayarınızdaki veya ağdaki veritabanında görünecek - Bağlanmak istediğiniz veritabanı sunucusunu seçin. - Bir sonraki pencerede yılında İleri 6. tıklayın - SQL Server kimlik doğrulaması ile Seç - o veritabanı için Oturum kimliğini (kullanıcı adı) ve şifre girin - Bir sonraki pencerede yılında İleri 7. tıklayın - Seç "varsayılan değiştirin veritabanı: "bağlamak istediğiniz veritabanı. - İleri'yi tıklatın 8. Bir sonraki pencerede bir şey değiştirmek zorunda değilsiniz, sadece Son'u tıklatın. 9. Tüm DSN bilgilerinize sahip yeni bir pencere açılır. 10. DSN bağlantısını test etmek için "Test Verileri Kaynağı ..." ye tıklayın - Her şey yolundaysa, yeni bir pencere "TESTLER TAMAMLANMIŞ BAŞARIYLA!" - Sonuç penceresinden çıkmak için Tamam'a tıklayın. 11. Tamam'ı tekrar tıklatın, kurulumu tamamlayın. 12.Kullanıcı Veri Kaynakları altındaki ana pencerede yeni oluşturulan DSN'nizi göreceksiniz. 13. Çıkmak için Tamam'a tıklayın.
Kaynak: https://www.youtube.com/watch?v=ehVFtmhPwxs