关于sql的一个问题?!(50分)

  • 主题发起人 主题发起人 wangxinf3
  • 开始时间 开始时间
W

wangxinf3

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(]大家看看下面的:我的用户名有三个,system为超级用户,在第三位,我在system的ability字段有123,其他的为空,
可是下面的总是在第一个,也就是说当我以system登陆时Flatcheckbox1.checked:=true无效,怎么做呢?
procedure TForm3.FlatRadioButton2Click(Sender: TObject);
begin
with form1.adoquery1 do
begin
close;
sql.clear;
sql.add('select ability from 用户 where user=('''+form1.flatedit1.text+''')');
open;
if form1.ADOTable1.FieldByName('ability').AsString='123' then
begin
form3.Flatcheckbox1.checked:=true;
form3.Flatcheckbox2.checked:=true;
form3.Flatcheckbox3.checked:=true;
end;
end; end;
 
begin
with form1.adoquery1 do
begin
close;
sql.clear;
sql.add('select ability from 用户 where user=:a');
parambyname('a').value:=Form1.FlatEdit1.Text;
open;
end;
adoquery1.first;
if form1.ADOquery1.FieldByName('ability').AsString='123' then
begin
form3.Flatcheckbox1.checked:=true;
form3.Flatcheckbox2.checked:=true;
form3.Flatcheckbox3.checked:=true;
end;
end;//你试试,另外,你的表中的ability是不是varchar类型的,如果是char
那是因为空格的问题了。
 
还是加上trim比较好,
你可以跟踪一下form1.ADOTable1.FieldByName('ability').AsString
的值看看
 
换成这个
sql.add('select ability from 用户 where user=('''+form1.flatedit1.text+''') and ability<.null');
 
应该是 少了 trim(...AsString)='123'
ADO 和 BDE 不同之处
 
换成这个
sql.add('select ability from 用户 where user='+#39+trim(form1.flatedit1.text)+#39)
 
换成这个
sql.add('select ability from 用户 where user like '''+form1.flatedit1.text+'''');
 
换成这个
sql.add('select ability from 用户 where user like :user)
parambyname('user').asstring:=form1.flatedit1.text;
 
多人接受答案了。
 
后退
顶部