一个简单的query.add语句为什么出错?(20分)

  • 主题发起人 主题发起人 rayofdawn
  • 开始时间 开始时间
R

rayofdawn

Unregistered / Unconfirmed
GUEST, unregistred user!
我作一个一个简单的登录,query已连接好,程序如下
Query1.SQL.Clear;
Query1.Sql.Add('Select * from user where 用户名="'+edit2.text+'" and 密码="'+Edit2.text+'"');
Query1.open;
.............
可是程序运行总是提示列名"用户名"无效!为什么?
 
应该是:
Query1.SQL.Clear;
Query1.Sql.Add('Select * from user where 用户名='"'+edit2.text+'"' and 密码='"'+Edit2.text+'"');
Query1.open;
.............
 
不行提示错误:
[Error] Unit1.pas(33): Illegal character in input file: '"' ($22)
 
你的问题出在表名“user”上!
“user”是SQL92~SQL200X中的关键字!!!
所以建议你将表名改为“b_user”.
 
同意楼上的
如果你的密码表为数字型的,那么要改为
密码='+Edit2.text+';
 
是不对,改了一下怎么样:
Query1.SQL.Clear;
Query1.Sql.Add('Select * from user where 用户名='+'"'+edit2.text+'"'+' and 密码='+'"'+Edit2.text+'"');
Query1.open;
 
“user”是关键字!!!
你为什么不这样写呢?
with query1 do
begin
SQL.Clear;
Sql.Add('Select * from user where 用户名=:p1 and 密码=:p2');
parambyname('p1').asstring:=edit2.text;
parambyname('p1').asstring:=edit2.text;
open;
end;
 
哈哈,我也搞过一次!
应该是用了USER这个关键字。

还有字段名最好不要用中文的
 
有没有用户名字段啊?
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部