你改一下吧; with adoquery do beign close; sql.clear; sql.add('select * from 费用表 where 费用代号 = :a'); params.items[0].asstring :=edit4.text; open; end;
'select * from 费用表 where 费用代号='''+#39+edit4.text+'''' 试试看。
'select * from 费用表 where 费用代号='+''''+edit4.text+''''
? 那就不是sql的问题 把代码贴出来吧
'select * from 费用表 where 费用代号='+ '"' + edit4.text + '"';
应该是 with adoquery do beign close; sql.clear; sql.text:=format('select * from 费用表 where 费用代号 = "%s"',[edit1.text]); execsql; end;
还是不行?是那个不行啊?你说清楚; ================================================= with adoquery do beign close; sql.clear; sql.add('select * from 费用表 where 费用代号 = :a'); params.items[0].asstring :=edit4.text; open; end; ==================================================== 不行吗? with adoquery do beign close; sql.clear; sql.add('select * from 费用表 where 费用代号 =+''''+edit4.text''''+'); params.items[0].asstring :=edit4.text; open; end; 行吗?
还是不行?是那个不行啊?你说清楚; ================================================= with adoquery do beign close; sql.clear; sql.add('select * from 费用表 where 费用代号 = :a'); params.items[0].asstring :=edit4.text; open; end; ==================================================== 不行吗? 上边有一点写错了 with adoquery do beign close; sql.clear; sql.add('select * from 费用表 where 费用代号 =+''''+edit4.text''''+'); open; end; 行吗?
1:你把query设计期的param参数给删除了看一看; 2:你换一个query
select * from 费用表 where 费用代号=:var ADOQuery2.Parameters[0].Value:=edit4.text;
procedure Tsfform.Edit4KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin inputfrm.close; if edit4.text<>'' then begin fyquery.Close; fyquery.sql.clear; fyquery.SQL.text:='select * from 费用表 where 费用代号='+#39+edit4.Text+#39; fyquery.open; if fyquery.recordcount>0 then begin edit5.Text:=trim(fyquery.fieldbyname('名称').AsString); edit7.SetFocus; end else begin errmessage('无效的费用代号!'); edit4.Text:=''; edit4.SetFocus; end; end else edit4.SetFocus; end; end;
字段名最好不用汉字, 把字段名"费用代号"改成英文如fydh试试
你的数据库表有问题吧...你把所有记录delete后,再试....
if edit4.text<>'' then begin fyquery.Close; fyquery.sql.clear; fyquery.SQL.text:='select * from 费用表 where 费用代号='+#39+edit4.Text+#39+';//这儿错了 fyquery.open;
fyquery.SQL.text:='select * from 费用表 where [费用代号]='+#39+edit4.Text+#39; 试试如何
with adoquery do
beign
close;
sql.clear;
sql.add('select * from 费用表 where 费用代号 = :a');
params.items[0].asstring :=edit4.text;
open;
end;
试试看。
那就不是sql的问题
把代码贴出来吧
with adoquery do
beign
close;
sql.clear;
sql.text:=format('select * from 费用表 where 费用代号 = "%s"',[edit1.text]);
execsql;
end;
=================================================
with adoquery do
beign
close;
sql.clear;
sql.add('select * from 费用表 where 费用代号 = :a');
params.items[0].asstring :=edit4.text;
open;
end;
====================================================
不行吗?
with adoquery do
beign
close;
sql.clear;
sql.add('select * from 费用表 where 费用代号 =+''''+edit4.text''''+');
params.items[0].asstring :=edit4.text;
open;
end;
行吗?
=================================================
with adoquery do
beign
close;
sql.clear;
sql.add('select * from 费用表 where 费用代号 = :a');
params.items[0].asstring :=edit4.text;
open;
end;
====================================================
不行吗?
上边有一点写错了
with adoquery do
beign
close;
sql.clear;
sql.add('select * from 费用表 where 费用代号 =+''''+edit4.text''''+');
open;
end;
行吗?
2:你换一个query
ADOQuery2.Parameters[0].Value:=edit4.text;
begin
if key=#13 then
begin
inputfrm.close;
if edit4.text<>'' then
begin
fyquery.Close;
fyquery.sql.clear;
fyquery.SQL.text:='select * from 费用表 where 费用代号='+#39+edit4.Text+#39;
fyquery.open;
if fyquery.recordcount>0 then
begin
edit5.Text:=trim(fyquery.fieldbyname('名称').AsString);
edit7.SetFocus;
end
else
begin
errmessage('无效的费用代号!');
edit4.Text:='';
edit4.SetFocus;
end;
end
else
edit4.SetFocus;
end;
end;
把字段名"费用代号"改成英文如fydh试试
begin
fyquery.Close;
fyquery.sql.clear;
fyquery.SQL.text:='select * from 费用表 where 费用代号='+#39+edit4.Text+#39+';//这儿错了
fyquery.open;
试试如何