我正在用本地SQLite数据库(使用Delphi XE4 Professional)创建Firemonkey应用程序,但是数据库不能正常工作。当我将一些数据插入数据库时,没有问题,但是当我试图在数据库上执行其他一些SQL命令(特别是删除和选择)时,我检索消息“database”或类似于"‘7’不是一个有效的整数值“之类的信息。
在我的应用程序中,我使用了TSQLConnection、TSQLQuery、TDataSetProvider和TClientDataSet组件连接到我的数据库。一切都连接到现有的数据库,就像在这个视频http://www.youtube.com/watch?v=ljdo0yUNVmA中,唯一的区别是,我的数据库不是InterBase,而是SQLite。
数据库是从cmd用SQLite3.7.11创建的
CREATE TABLE History (
ID INTEGER PRIMARY KEY AUTOINCREMENT,
Kod TEXT( 7 ));
CREATE TABLE Drogs (
Kod TEXT( 7 ) PRIMARY KEY,
Naz TEXT( 60 ),
Dop TEXT( 60 ),
RegCis TEXT( 20 ),
ATC TEXT( 8 ),
Hraz TEXT( 1 ),
Obch TEXT( 1 ));将数据库连接到我的应用程序(如上面所述)之后,数据将插入到表中。
sKod := quotedstr('1234567');
sNaz := quotedstr('Name');
sHraz := quotedstr('0');
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('INSERT INTO Drogs (Kod, Naz, Hraz) ');
SQLQuery1.SQL.Add('VALUES('+sKod+','+sNaz+','+sHraz+')');
SQLQuery1.ExecSQL;这没有问题,但是这段代码
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('SELECT * from Drogs');
SQLQuery1.Open;给出错误消息,如
'7 ' is not a valid integer value和代码
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('DELETE FROM Drogs WHERE Hraz = "0"');
SQLQuery1.ExecSQL;“有时”会发出错误信息。
Database is locked知道吗,为什么会这样?我别无选择..。
发布于 2013-08-17 21:58:21
转到SQLQuery1并设置"Active = False“
https://stackoverflow.com/questions/17730923
复制相似问题