2014-09-08 8 views
1

저는 C++을 사용하여 Qt에서 데이터베이스에 연결했습니다.Qt를 통해 데이터베이스의 테이블을 잠그는 방법?

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
db.setDatabaseName("/link/to/my.db"); 

동시에 동일한 데이터베이스에 연결하고 "myTable"이라는 테이블을 지속적으로 업데이트하는 Python 프로그램이 있습니다.

Qt에서 폴링 할 때마다 새로 업데이트 된 행을 읽고 싶습니다. 그래서 내가하고 싶어

테이블을 잠근다. 모든 행을 읽습니다. 모든 행을 삭제하십시오. 테이블 잠금을 해제하십시오.

가 어떻게 잠그고 Qt를

테이블의 잠금을 해제 할

답변

1

SQLite는의 테이블에 대한 잠금 명령이 없습니다. 그래서 당신은 트랜잭션을 실행할 수

BEGIN IMMEDIATE TRANSACTION; 
... 
COMMIT TRANSACTION; 

또는

BEGIN EXCLUSIVE TRANSACTION; 
... 
COMMIT TRANSACTION; 

이전 명령과 작업 후 :하지만 당신은 트랜잭션 데이터베이스를 잠글 수 있습니다

q.exec("BEGIN IMMEDIATE TRANSACTION"); 

... 

q.exec("COMMIT"); 

또는

db.transaction(); // Begins a transaction 

... 

db.commit(); //Commits a transaction