现用DBGrid显示了数据库中部分字段的值,要实现用户在点击某按钮后在另一个Form上显示所有字段。因此想根据用户所选的行用sql语句select * from ...where...的办法把该行的所有信息读出。或者除了这种办法有无其它办法解决?

解决方案 »

  1.   

    以下是选择一行的情况:
    procedure TForm1.Button1Click(Sender: TObject);
    var str1,str2:string;
    begin
      str1:=ADOQuery1.FieldByName('字段1').asstring;
      str2:=ADOQuery1.FieldByName('字段2').asstring;
    end;
    选择多行:
    procedure TForm1.Button1Click(Sender: TObject);
    var str1,str2:string;
        i:integer;
    begin
      with ADOQuery1 do
      begin
        for i:=0 to  DBGrid1.SelectedRows.Count-1 do
        begin
            GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
            str1:=ADOQuery1.FieldByName('×Ö¶Î1').asstring;
            str2:=ADOQuery1.FieldByName('×Ö¶Î2').asstring;
            next;
        end;
      end;
    end;
      

  2.   

    呵呵,根本就不用那么麻烦,如果数据量不是太大,直接都选出来方到Query里面,只是分批显示,因为我觉得上面的方法效率不是很高呀,如果数据量大,可以考虑使用楼上的方法。然后用Select语句再从数据库里面选出来。
      

  3.   

    谢谢 ysycrazy
    楼上的,就是因为数据量大过头咯。。八十个字段。。
    写sql语句写到我快晕了