procedure TForm4.Button1Click(Sender: TObject);
begin
form3.adotable1.post;adotable1.Append; //插入记录
adotable1.FieldByName('id').asstring:=trim(edit1.Text);
adotable1.FieldByName('name').asstring:=trim(edit2.Text);
adotable1.FieldByName('ccid').asstring:=form3.pct;
adotable1.Post;adotable2.Append;
adotable2.FieldByName('tvtxt').asstring:=trim(edit1.Text);
adotable2.FieldByName('tvn').asstring:='01';
adotable2.post;adotable2.Append;
adotable2.FieldByName('tvtxt').asstring:=trim(edit2.Text);
adotable2.FieldByName('tvn').asstring:='03';
adotable2.post;//对form2进行初始化
form2.tabsheet1.tabvisible:=false;
form2.tabsheet2.tabvisible:=false;
form2.tabsheet3.tabvisible:=false;
form2.tabsheet4.tabvisible:=false;
form2.tabsheet5.tabvisible:=false;
form2.pagecontrol1.activepage:=form2.tabsheet6;
//
form2.Button1.Visible:=false;
form2.Button2.Visible:=false;
form2.Button3.Visible:=false;
form2.Button4.Visible:=false;
form2.Button6.Visible:=false;
form2.Button7.Visible:=false;
form2.Button8.Visible:=false;
//
{      ?????有问题
adoquery1.Close;
adoquery1.sql.clear;
adoquery1.SQL.add('select * from patient where ccid=form3.pct');
adoquery1.open;
form2.Edit1.Text:=adoquery1.fieldbyname('id').asstring;
form2.Edit2.Text:=adoquery1.fieldbyname('name').asstring;
form2.Edit27.Text:=adoquery1.fieldbyname('id').asstring;
form2.Edit28.Text:=adoquery1.fieldbyname('name').asstring;}
form4.Hide;
form2.show;
给的错误就是参数form3.pct没有默认值,pct是我的form3中定义的string全局变量
end;

解决方案 »

  1.   

    adoquery1.SQL.add(format('select * from patient where ccid= ''%s''',[form3.pct]));
      

  2.   

    adotable1.FieldByName('ccid').asstring:=form3.pct;
    应该是form3.pct没有默认值引起的!
    你首先跟踪一下pct值,看有没有初始化或者是否设置默认值。
      

  3.   

    'select * from patient where ccid=form3.pct'
    form3.pct既然是个变量,那就不能直接填在串中。
    'select * from patient where ccid='''+form3.pct+''''
      

  4.   

    来晚了..
    楼上正解
    'select * from patient where ccid='''+trim(form3.pct)+''''