在C++中,如何建立SQL連接以將數據存儲在SQL數據庫中?如何通過C++創建數據庫連接
回答
你應該看看與數據庫traditionaly存在Ç預處理器(ecpg Postgres的,Pro*C甲骨文......它可以讓你直接嵌入SQL直接在你的源文件)或orginal system爲MySQL。 ECPG將使用C++,這是/不是一些其他預處理器的情況...
如果您的目標是Windows,那麼您可能需要使用ODBC。
而不僅僅是Windows - ODBC可在Unix和衍生品了。 – 2008-11-19 06:16:19
你可以嘗試使用SQLite作爲數據庫的wxSqlite。這爲您提供了一個開源連接頭文件/ C++文件來開始。
一般來說 - 你應該得到某種圖書館,爲你提供所需的功能。所有主要的數據庫供應商都應該提供至少一個C庫。大多數情況下,你得到一個C++庫或C包裝器。
使用SQLAPI ++ - 它是跨平臺的,支持MS SQL Server,Oracle,Postgres等。非常容易使用。
和它的共享軟件 – 2008-11-19 07:55:13
如果針對Windows,你可以隨時使用的進口能力。
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")
然後你可以做一個包裝來處理SQL。
小例子,只是爲了打開緊密連接
// H
class CExtAdoDatabase
{
public:
CExtAdoDatabase(const char* p_cConnectString="", const char* p_cUsername="", const char* p_cPwd="");
virtual ~CExtAdoDatabase();
bool Open(const char* p_cConnectString="", const char* p_cUsername="", const char* p_cPwd="");
bool Close();
private:
HRESULT _hInitRes;
bool _bIsValid;
_ConnectionPtr *_p_pConnection;
};
// CPP
CExtAdoDatabase::CExtAdoDatabase(const char* p_cConnectString, const char* p_cUsername, const char* p_cPwd) : _hInitRes(CoInitialize(NULL))
{
_p_pConnection = new _ConnectionPtr("ADODB.Connection");
if(FAILED(_hInitRes))
_bIsValid = false;
else
{
_bIsValid = true;
(*_p_pConnection)->ConnectionTimeout=0;
(*_p_pConnection)->CommandTimeout=0;
if(p_cConnectString != NULL && strlen(p_cConnectString))
{
_bstr_t scs(p_cConnectString);
_bstr_t susr(p_cUsername);
_bstr_t spwd(p_cPwd);
(*_p_pConnection)->Open(scs, susr, spwd, NULL);
}
}
}
CExtAdoDatabase::~CExtAdoDatabase()
{
Close();
delete _p_pConnection;
CoUninitialize();
}
bool CExtAdoDatabase::Open(const char* p_cConnectString, const char* p_cUsername, const char* p_cPwd)
{
if(_bIsValid)
{
_bstr_t scs(p_cConnectString);
_bstr_t susr(p_cUsername);
_bstr_t spwd(p_cPwd);
return ((*_p_pConnection)->Open(scs, susr, spwd, NULL) == S_OK);
}
else
return false;
}
bool CExtAdoDatabase::Close()
{
if(_bIsValid)
{
if((*_p_pConnection)->GetState() == adStateOpen)
return !!(*_p_pConnection)->Close();
else
return true;
}
else
return false;
}
- 1. 如何通過Java和Tomcat創建Oracle數據庫連接?
- 2. 通過C連接到oracle數據庫
- 3. SQL:通過連接機器名創建數據庫
- 4. 通過連接c#和mysql如何刪除數據庫再次創建它並連接?
- 5. 如何連接PHPMYADMIN數據庫來創建數據庫
- 6. 如何通過QBS連接PostgreSQL C庫?
- 7. 如何通過c#連接到MySQL數據庫?
- 8. 如何創建從C#到遠程couchbase數據庫的數據庫連接
- 9. 通過Linux終端創建MySQL數據庫,並通過phpMyAdmin連接它
- 10. 通過C++創建SQLite數據庫。通過Java SDK訪問它?
- 11. 如何創建連接池/數據源而不是連接到SQL數據庫
- 12. 如何使用JDBC通過數據庫鏈接連接到遠程數據庫?
- 13. 如何通過套接字連接訪問數據庫? (w/DataGrip)
- 14. 如何在Oracle數據庫中創建鏈接/連接表
- 15. 通過SSH連接到MySQL數據庫
- 16. 通過NetBeans連接到Oracle數據庫
- 17. 通過.pem連接到數據庫
- 18. iPhone:通過Internet連接到數據庫?
- 19. 通過SQLPLUS連接Oracle數據庫
- 20. 通過局域網連接數據庫
- 21. 通過config.properties連接數據庫
- 22. 通過python連接到MySQL數據庫
- 23. 通過PHP連接到Oracle數據庫
- 24. 通過數據庫連接。 php
- 25. 通過類的數據庫連接
- 26. 通過mongojs連接到monogolab數據庫
- 27. 通過代理的數據庫連接
- 28. 通過PHP連接到Sharepoint數據庫
- 29. 通過PHP連接到SOQL數據庫
- 30. 通過php連接數據庫
我認爲這個問題是太含糊 – 2008-11-19 06:05:58