Poco使用SQLite的事務

最近要導入一些數據,由於涉及主鍵與外鍵的關係,迫切需要得知插入後的自增字段,但又擔心多客戶端錄入導致獲取的rowid不一致。於是採用了事務。
#include <iostream>
#include <string>
#include "Poco/Data/Common.h"
#include "Poco/Data/SQLite/Connector.h"
using namespace Poco::Data;
using namespace std;
int main()
{
	std::string caseno="CNO1311";
	SQLite::Connector::registerConnector();
	Session ses("SQLite","C:\\EviChain.db");
	ses<<"BEGIN TRANSACTION",now;
	ses<<"Insert INTO [Case](CaseNo) VALUES (:cno)",use(caseno),now;
	ses<<"SELECT DISTINCT(LAST_INSERT_ROWID()) AS RowID FROM [Case]",into(count),now;
	ses<<"COMMIT TRANSACTION",now;
	SQLite::Connector::unregisterConnector();
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章