我是想把tableform里的选中的数据表tablename传到dataform里,然后搜索数据表tabledict表查出里面所有tablename等于传过来的表名,把那些数据项全部列到checklistbox里面,你帮我看看,好想我写的代码不能实现这个功能 

解决方案 »

  1.   

    好的,
     STableName := TableForm.TableName;
         if ClientADOQuery<>nil then
         begin
             ClientADOQuery.Close;
              s:='TableName';
            // ClientADOQuery.Edit;
             ClientADOQuery.SQL.Clear;
             ClientADOQuery.SQL.Add('select * from TableDict where TableName='''+STableName+'''');
             ClientADOQuery.Open;
             if TableForm.ClientADOQuery.Active then
             begin
                while not ClientADOQuery.Eof do
               begin               s:=TableForm.ClientADOQuery.FieldByName(s).AsString;               DataCheckListBox.Items.Add(ClientADOQuery.FieldByName('FieldDesc').AsString);
                   ClientADOQuery.Next;
                end;
             end;
    用 while not ClientADOQuery.Eof do怎么不行啊
      

  2.   


                   s:=TableForm.ClientADOQuery.FieldByName(s).AsString;               DataCheckListBox.Items.Add(ClientADOQuery.FieldByName('FieldDesc').AsString);這兩句好好看看,加斷點走一下,肯定有問題!s到底是什麽,之後你沒有用到,
      

  3.   

    eof不行,什么意思啊,是不是你eof内得代码不执行啊?
      

  4.   

    s:=TableForm.ClientADOQuery.FieldByName(s).AsString;
    不知道这一句是你得技巧,还是错误。。
      

  5.   

    我只想知道.EOF的代码怎么实行就行了
      

  6.   

    clientadoquery.first; //加上这一句,试试,注意你的clienadoquery究竟执行了什么,是否返回了你需要的结果。
    while not ClientADOQuery.Eof do
               begin               s:=TableForm.ClientADOQuery.FieldByName(s).AsString;               DataCheckListBox.Items.Add(ClientADOQuery.FieldByName('FieldDesc').AsString);
                   ClientADOQuery.Next;
                end;