Table
{
F_ID char 36
F_CZ varchar 8}
ADOQuery1的SQL为  select F_ID from T_CZ where F_CZ='MainForm.CZComboBox.text'现在调用
czID:=GetIDADOQuery.FieldByName('F_ID').AsString就是取不到值
GetIDADOQuery.FieldByName('F_ID').AsString   是空的另外MainForm.CZComboBox.text的值可以取到当前的Form里,用了一个Label1试过
表里的数据也不是空的

解决方案 »

  1.   

    ADOQuery1的SQL为     select   F_ID   from   T_CZ   where   F_CZ='MainForm.CZComboBox.text' 
    这句是错误的哈.正确使用ADOQuery是这样的.Procedure GetData(ID:String);
    var
    szID:string;
    begin
        ADOQuery.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='你的数据库位置';Persist Security Info=False';//和上面的是一句哈
        ADOQuery.SQL.Clear;
        ADOQuery.SQL.Add('select * from 表名');//注意在括号内的是一个由'引起的STRING
        ADOQuery.Open;
        szID:=ADOQuery.fieldbyname('ID').ASString);//ID是要查询的字段
    end;
    有不明白的请到我的BLOG下载我写的一个通讯录,里面有详细的代码,http://www.calloy.cn
      

  2.   

     改成  sql.text:='select   F_ID   from   T_CZ   where   F_CZ='''+MainForm.CZComboBox.text+''''
     试下 
      

  3.   

    sql.text := format('select F_ID from T_CZ where F_CZ=%s', [QuotedStr(MainForm.CZComboBox.text)]);
      

  4.   

    你找个变量,赋值为MainForm.CZComboBox.text
    你自己看着也舒服,编译器看着也舒服