2016-11-16 29 views
0

У меня есть база данных sqlite, которую я хочу читать только, когда она используется другим приложением gui, так что пользователь не может редактировать данные, только приложение Qt может его редактировать.Как сделать базу данных Sqlite только для чтения?

Вот мой код:

//open the database 
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
    db.setDatabaseName(database location); 

    if(db.open()) 
     qDebug()<<"opened!"; 
    else 
     qDebug()<<"not opened!"; 

//insert data 
QSqlQuery qry; 

qry.prepare("insert into tableName (column_1, column_2, column_3) values (:v1, :v2, :v3)"); 

    qry.bindValue(":v1", "data1"); 
    qry.bindValue(":v2", "data2"); 
    qry.bindValue(":v3", "data3"); 

    qry.exec(); 
+2

Невозможно разрешить только одну программу для записи в такой файл. –

+0

Почему вы хотите иметь этот замок? – HazemGomaa

+0

Я имею в виду, что хочу сделать базу данных только для чтения, потому что скажу, что мое приложение имеет дело с данными для бизнеса клиента, поэтому, если возможно, кто-то отредактирует данные из любого приложения gui sqlite, это повлияет на его работу, поэтому я хочу сделать только способ редактировать данные с помощью приложения (у пользователя будет пароль) –

ответ

0

Encrypt your database это только ваше приложение может получить доступ к нему. Предоставьте функцию экспорта внутри приложения, которая записывает нешифрованную версию БД только для просмотра.

Смежные вопросы