首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有本地SQL数据库的FMX桌面应用程序。数据库不能正常工作

带有本地SQL数据库的FMX桌面应用程序。数据库不能正常工作
EN

Stack Overflow用户
提问于 2013-07-18 18:09:24
回答 1查看 879关注 0票数 0

我正在用本地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创建的

代码语言:javascript
复制
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 ));

将数据库连接到我的应用程序(如上面所述)之后,数据将插入到表中。

代码语言:javascript
复制
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;

这没有问题,但是这段代码

代码语言:javascript
复制
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('SELECT * from Drogs');
SQLQuery1.Open;

给出错误消息,如

代码语言:javascript
复制
'7 ' is not a valid integer value

和代码

代码语言:javascript
复制
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('DELETE FROM Drogs WHERE Hraz = "0"');
SQLQuery1.ExecSQL;

“有时”会发出错误信息。

代码语言:javascript
复制
Database is locked

知道吗,为什么会这样?我别无选择..。

EN

回答 1

Stack Overflow用户

发布于 2013-08-17 21:58:21

转到SQLQuery1并设置"Active = False“

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17730923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档