Edit1.text:=adoquery1.fieldbyname('name').asstring;
解决方案 »
- 怎样按当前日期命名保存图像?
- 可用分小于20分的人接分之三,Delphi区五帖,五一后结贴
- property用法
- 如何动态地生成一组按钮,按钮 的数量不定,可能是3个,也可能是5个或更多
- 关于在dll中动态创建Treeview的怪问题
- 火急,请各位老师朋友帮忙,保证给高分
- 做一个好的界面都不容易,不知道DEPHI与VC哪一个做界面相对容易一些呀?
- 怎样ClientSocket OnRead接受一个TMemoryStream啊? 100分
- <<delphi深度探索>>第一章olap例子的问题
- 有谁能传给我一个用 ODBC 连 .MDB 文件的例子啊?
- 帮我解释一下.
- 怎样让某个程序最小话的图标闪烁?
.Sql.clear ;
.Sql.Add('select * from post where name = :strname') ;
.Parameters.ParamByName('strname').value=strname ;
.open ;
Edit1.text:=ADOQuery1.Fields[0].Asstring ;//请先查看是否真的有记录返回?
你看看fields[0]是什么字段,有值吗?
.Sql.clear ;
//请把 .Sql.Add('select * from post where name := strname') ;改成
Sql.Add('select * from post where name=: strname')
.Parameters.ParamByName('strname').value:=strname ;
.open ;
Edit1.text:=ADOQuery1.Fields[0].Asstring ;
2.strname := string
改为
'select * from post where name = :strname'
改为
select * from post where name = :strname'
只有:strname才表示参数
这个语句中的name:=strname是赋值,不判断等于,根本不会满足条件的!
ADOQuery1.close ;
.Sql.clear ;
.Sql.Add('select * from post where name = :strname') ;
.Parameters.ParamByName('strname').value=strname ;
.open ;
Edit1.text:=ADOQuery1.Fields[0].Asstring
不行,再试试
var sqlword:string;
begin
sqlword:=format('select * from post where name=%s',[strname]);
ADOQuery1.close ;
.Sql.clear ;
.Sql.Add(sqlword) ;
.open ;
Edit1.text:=ADOQuery1.Fields[0].Asstring
end;
再不行,就是数据库或参数strname有问题!
begin
close ;
Sql.clear ;
Sql.Add('select name from post where lTrim(rTrim(name)) := strname') ; //不建议使用*,第而,去掉空格。
Parameters.ParamByName('strname').value:=Trim(strname);
open ;
if not isEmpty then
Edit1.text:=Fieldsbyname('Name').Asstring ;
else
showmessage('没有满足条件的记录!');
close;
end;
with Adoquery1 do
begin
close ;
Sql.clear ;
Sql.Add('select name from post where lTrim(rTrim(name)) =: strname') ; //不建议使用*,第而,去掉空格。
Parameters.ParamByName('strname').value:=Trim(strname);
open ;
if not isEmpty then
Edit1.text:=Fieldsbyname('Name').Asstring ;
else
showmessage('没有满足条件的记录!');
close;
end;
改为
select * from post where name = :strname'
只有:strname才表示参数
aaa或ccc则报错:定义程序定义Parameter对象的方式不适当。WHY?请大虾解答。
.Sql.clear ;
.Sql.Add('select * from post where name = :strname') ;
.Parameters.ParamByName('strname').value:=strname ;
.open ;
Edit1.text:=ADOQuery1.Fields[0].Asstring ;
这样就正确了
你后来提的没有明白什么意思:先选bbb,运行正确。这时继续选bbb或选
aaa或ccc则报错
begin
close ;
Sql.clear ;
Sql.Add('select name from post where lTrim(rTrim(name)) := strname') ; //不建议使用*,第而,去掉空格。
Parameters.ParamByName('strname').value:=Trim(strname);
open ;
if not isEmpty then
Edit1.text:=Fieldsbyname('Name').Asstring ;
else
showmessage('没有满足条件的记录!');
close;
end;
.Sql.clear ;
.Sql.Add('select * from post where name = :strname') ;
.Parameters.ParamByName('strname').value:=strname ;
execute;
.open ;
Edit1.text:=ADOQuery1.Fields[0].Asstring ;
这样就正确了
.Sql.clear ;
.Sql.Add('select * from post where name =: strname') ;
.Parameters.ParamByName('strname').value:=strname ;
.open ;
Edit1.text:=ADOQuery1.Fields[0].Asstring ;注意:
name:=strname 是错的
name=:strname 正确
是否有记录
不太确定是否错(使用‘post’为表名是否有冲突)