(在线等待)请教连接数据库用TQuery使用SQL的问题

gongfucai 2003-10-17 02:48:01
我的数据库用DELPHI的Datebase Desktop 中pradox7 表
用TQuery连接表
在执行select时可以
但执行insert,update,delete时不行
为什么??
...全文
42 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoutian618 2003-10-18
  • 打赏
  • 举报
回复
query1.Close;
query1.SQL.Text:='insert into "myuser.db"(username1,password,usertype ) values(:un,:pw,:ut) ';
query1.Params[0].AsString:=edit1.Text;
query1.Params[1].AsString:=edit2.Text;
query1.Params[2].AsString:=ComboBox1.Text;
query1.ExecSQL;
huojiehai 2003-10-18
  • 打赏
  • 举报
回复
query1.SQL.Text:='insert into myuser.db(username1,password,usertype, ) values(:un,:pw,:ut) ';

query1.SQL.Text:='insert into myuser.db(username1,password,usertype) values(:un,:pw,:ut) ';
gongfucai 2003-10-18
  • 打赏
  • 举报
回复
我的代码是这样的:

query1.Close;
query1.SQL.Text:='insert into myuser.db(username1,password,usertype, ) values(:un,:pw,:ut) ';
query1.Params[0].AsString:=edit1.Text;
query1.Params[1].AsString:=edit2.Text;
query1.Params[2].AsString:=ComboBox1.Text;
query1.ExecSQL;
它出现这样的错:
Project Project.ex raised excepton class EDBEnglneError with messge 'Invalid use of keyword.
Token:password,usertype
Line Number: 1',Process stopped. Use step or run to continue.
kevin218 2003-10-18
  • 打赏
  • 举报
回复
你的sql语句有问题,在引号之间的显示的时候都是以执行语句显示的,而你的语句里有
三个宿主变量是没办法识别的。
你的sql语句如果在后台能执行的时候,你再拿到前台程序中来,我们做程序,要有个良好的习惯。应该这么写:
query1.SQL.Text:='insert into myuser.db(username1,password,usertype) values('+''''+:un+''','''+:pw+''','''+:ut+''')'

快试试吧!
hks 2003-10-18
  • 打赏
  • 举报
回复
您的表结构是什么样的?那个是主键?你用来测试的数据以存在于数据库中了吗?
gongfucai 2003-10-18
  • 打赏
  • 举报
回复
我上面的现在是这种错:
Invalid use of keyword. token:pawwword,usertype Line Numbger:1.
angle097113 2003-10-18
  • 打赏
  • 举报
回复
query1.SQL.Text:='insert into myuser.db(username1,password,usertype) values(:un,:pw,:ut) '

里面不要引号的 试试
gongfucai 2003-10-18
  • 打赏
  • 举报
回复
我很急啊,帮帮忙吧,有什么办法没有?
gongfucai 2003-10-18
  • 打赏
  • 举报
回复
现在我已经写成这样

query1.Close;
query1.SQL.Text:='insert into "myuser.db" (username1,password,usertype ) values(:un,:pw,:ut) ';
query1.Params[0].AsString:=edit1.Text;
query1.Params[1].AsString:=edit2.Text;
query1.Params[2].AsString:=ComboBox1.Text;

query1.ExecSQL;

但还是一样的错
Project Project.ex raised excepton class EDBEnglneError with messge 'Invalid use of keyword.
Token:password,usertype
Line Number: 1',Process stopped. Use step or run to continue.
zcfzcf001 2003-10-17
  • 打赏
  • 举报
回复
正常情况下sql语句都可以使用,只是稍有些不同罢了,
代码?
47522341 2003-10-17
  • 打赏
  • 举报
回复
楼上的各位说的都没错;楼主还是连代码粘贴出来把;
angle097113 2003-10-17
  • 打赏
  • 举报
回复
不知道你的代码是什么
帖出来看看吧 就是在执行insert delete的时候不是open 而是execsl
guzq888 2003-10-17
  • 打赏
  • 举报
回复
不要用query.open
用query.execsql即可
mxk19791116 2003-10-17
  • 打赏
  • 举报
回复
是什么错误呀????
huaervvhuaer 2003-10-17
  • 打赏
  • 举报
回复
不是你的错!

用Table吧

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧