有关数据库的有关问题
有关数据库的问题
表名称a
temp h
100 10
200 20
300 30
400 40
500 50
...
放两个edit,一个用来输入temp的值,一个用来显示对应的h的值,代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add( 'select h from a where h=:temp ');
parameters.ParamByName( 'temp ').Value:=edit1.Text;
open;
if adoquery1.RecordCount> 0 then
begin
edit2.Text:=adoquery1.fieldbyname( 'h ').AsString;
end;
end;
end;
但是 edit2.Text:=adoquery1.fieldbyname( 'h ').AsString;这句中的adoquery1.中fieldbyname没有,但是写出来可以运行,输入edit1后按纽edit2不显示请问错在哪里?大家帮忙看一下
------解决方案--------------------
修改一下:
procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add( 'select h from a where h= ' ' '+edit1.Text+ ' ' ' ');
open;
if adoquery1.RecordCount> 0 then
begin
edit2.Text:=adoquery1.fieldbyname( 'h ').AsString;
end else ShowMessage( '数据未找到! ');
end;
end;
还有为什么表名和字段名都用单个字母呢?
表名称a
temp h
100 10
200 20
300 30
400 40
500 50
...
放两个edit,一个用来输入temp的值,一个用来显示对应的h的值,代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add( 'select h from a where h=:temp ');
parameters.ParamByName( 'temp ').Value:=edit1.Text;
open;
if adoquery1.RecordCount> 0 then
begin
edit2.Text:=adoquery1.fieldbyname( 'h ').AsString;
end;
end;
end;
但是 edit2.Text:=adoquery1.fieldbyname( 'h ').AsString;这句中的adoquery1.中fieldbyname没有,但是写出来可以运行,输入edit1后按纽edit2不显示请问错在哪里?大家帮忙看一下
------解决方案--------------------
修改一下:
procedure TForm1.Button1Click(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add( 'select h from a where h= ' ' '+edit1.Text+ ' ' ' ');
open;
if adoquery1.RecordCount> 0 then
begin
edit2.Text:=adoquery1.fieldbyname( 'h ').AsString;
end else ShowMessage( '数据未找到! ');
end;
end;
还有为什么表名和字段名都用单个字母呢?