做一个很小的数据库查询程序
遇到一个难题:
我在Form4里的edit1里输入查询条件(id),点击btn1弹出form5显示查询结果(按字段显示在不同的edit里),我不知道这个在不同的窗体里的sql语句怎么写?
请各位看看要实现这个代码该怎么写?
表为:Operator 字段名称有id name sex age;
后面三个字段要显示在三个edit里的,要分三条写吗?
遇到一个难题:
我在Form4里的edit1里输入查询条件(id),点击btn1弹出form5显示查询结果(按字段显示在不同的edit里),我不知道这个在不同的窗体里的sql语句怎么写?
请各位看看要实现这个代码该怎么写?
表为:Operator 字段名称有id name sex age;
后面三个字段要显示在三个edit里的,要分三条写吗?
如果你非要用TEdit空间的话大概象这样:
select name,sex,age from....
然后分别赋值:
edit1.Text:=Fields[0].AsString;//代表记录集的第一个字段
edit2.Text:=Fields[1].AsString;
edit3.Text:=Fields[2].AsString;
回答的够详细了吧:)
“你为什么要放三个edit呢?”因为我目前只能想到每个edit 前面放一个标签说,我想这样对应,:)
您说的最简单的那种一条语句搞定的是怎么写的。
还有,btn1 不在查询显示窗体不要紧的吗》?
Form5:=TForm5.Create;
Form5.para1:=XXX;
Form5.para2:=YYY;
Form5.ShowModal;//Form5
private
para1,para2,para3:string;
procedure TForm5.ShowResult;
begin
with Query1 do
begin
XXXXXXXX;
end;
procedure TForm5.Show;
begin
ShowResult;
end;
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ADODB,Unit2;type
TForm4 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form4: TForm4;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;implementation{$R *.dfm}procedure TForm4.Button1Click(Sender: TObject);
var
S_ID:integer;
begin
if(Edit1.Text<>'')then
begin
S_ID := strtoint(Edit1.text);
Form2:=TForm2.Create(self);
Form2.Edit1.Text:=Edit1.text;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.ADD('select Study_Key,Pat_ID,Pat_Name from StudysList where Study_ID = :S_ID') ;
ADOQuery1.Open;
Form2.Edit2.Text := ADOQuery1.Fields[0].AsString;
Form2.Edit3.Text := ADOQuery1.Fields[1].AsString;
Form2.Edit4.Text := ADOQuery1.Fields[2].AsString;
Form2.ShowModal; end;
end;procedure TForm4.FormCreate(Sender: TObject);
begin
ADOConnection1 := TADOConnection.Create(self);
ADOQuery1 := TADOQuery.Create(self);
ADOConnection1.Close;
ADOConnection1.ConnectionString :=' Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Program Files\Borland\Delphi6\Projects\Bpl\ADOTest\Atest.mdb;Mode=Share Deny None;Extended ';
ADOConnection1.LoginPrompt:=false;
ADOConnection1.CursorLocation := clUseClient;
ADOQuery1.CacheSize := 1000;
ADOQuery1.Prepared := true;
ADOQuery1.Connection := ADOConnection1;
end;
end.
begin
if(Edit1.Text<>'')then
begin
Form2:=TForm2.Create(self);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.ADD('select Study_Key,Pat_ID,Pat_Name from StudysList where Study_ID = :Study_ID') ;
ADOQuery1.Parameters.ParamByName('Study_ID').Value:=strtoint(Edit1.text);
ADOQuery1.Open;
Form2.Edit1.Text := Edit1.text;
Form2.Edit2.Text := ADOQuery1.Fields[0].AsString;
Form2.Edit3.Text := ADOQuery1.Fields[1].AsString;
Form2.Edit4.Text := ADOQuery1.Fields[2].AsString;
Form2.ShowModal; end;
end;