procedure TlogForm.comb2DblClick(Sender: TObject);
var sql,value:string;
begin
   //showMessage(dataMod.DataModule1.ADOcon.Connected);
  if dataMod.DataModule1.ADOcon.Connected then
      begin
      showMessage('1');
      dataMod.DataModule1.ADOquery.Close;
      dataMod.DataModule1.ADOquery.SQL.Clear;
      sql:='select user_name from userinfo';
      dataMod.DataModule1.ADOquery.SQL.Add(sql);
      dataMod.DataModule1.ADOquery.Open;
     while dataMod.DataModule1.ADOquery.Eof do
      begin
        value:=dataMod.DataModule1.ADOquery.FieldByName('user_name').AsString;
        showMessage(value);
        dataMod.DataModule1.ADOquery.Next;
       end;
      end;
end;
上面段代码,if里的语句为什么不执行?难道是if判断的方法有错?

解决方案 »

  1.   

    if dataMod.DataModule1.ADOcon.Connected=true  then
      

  2.   

    写上=true和不写应该是一样的吧,加上我试了还是不执行,为什么呢?
      

  3.   

    确认dataMod.DataModule1.ADOcon.Connected 条件符合吗
      

  4.   

    条件不满足,或者是IDE出现了问题:关闭IDE后,重新开启。
      

  5.   


    加上了就是赋值语句了.就不是判断了. 
    先判断下,如果 Not Connect 就执行 Connected := True;然后再用你下面的代码试下.
      

  6.   

    ADOcon的字符串我测试了连接是正常的,没问题的啊
      

  7.   

    你只是测试了,但是并没有在代码中真正的打开connection所以你的条件不满足
      

  8.   

    说明下,我的dataMod单元是放在文件夹config下面的,本单元引用dataMod单元,我直接用的uses dataMod,(我想用uses config/dataMod但报错)会不会和这有关? 
      

  9.   


    先打开连接
    ADOConnection1.Open;
      

  10.   


    procedure TlogForm.comb2DblClick(Sender: TObject);
    var sql,value:string;
    begin
       //showMessage(dataMod.DataModule1.ADOcon.Connected);
      if not dataMod.DataModule1.ADOcon.Connected then
      begin
        dataMod.DataModule1.ADOcon.Connected:=true;//数据库连接
      end;  if dataMod.DataModule1.ADOcon.Connected then
          begin
          showMessage('1');
          dataMod.DataModule1.ADOquery.Close;
          dataMod.DataModule1.ADOquery.SQL.Clear;
          sql:='select user_name from userinfo';
          dataMod.DataModule1.ADOquery.SQL.Add(sql);
          dataMod.DataModule1.ADOquery.Open;
         while dataMod.DataModule1.ADOquery.Eof do
          begin
            value:=dataMod.DataModule1.ADOquery.FieldByName('user_name').AsString;
            showMessage(value);
            dataMod.DataModule1.ADOquery.Next;
           end;
          end;
    end;