我自己是这样写的
不过好想不行
我想知道在adoquery里面的sql属性里面的sql语句应该怎么写。
还有按钮的事件。谢谢啦!!!

解决方案 »

  1.   

    我想先问问两个adoquery用一个adoconnection行不行
    一个adoquery是用来查询的,一个是用来更新的
    如果不行怎么解决。谢谢啦!!!
      

  2.   

    with adoquery do
    begin
      close;
      sql.clear;
      sql.add('update table set field =:field');
      paramters.parambyname('field').value :='a';
      try
       execsql;
      except
      end;
    end;
      

  3.   

    当然行,你在一个工程里面只需要在主界面放一个AdoConnection就行了,其他的adoquery或者adoDataSet等都可以来调用
      

  4.   

    qxj(小小小小小小程序员) 
    sql.add('update table set field =:field');
      paramters.parambyname('field').value :='a';你这两句我改成这样你看行不行
    sql.add('update table set field1 =:field1 field2 =:field2');
      paramters.parambyname('field').value :='edit1.text';
    我想一次更新好几个字段
    怎么写?
    sql属性里面怎么写?谢谢指教!
      

  5.   

    还有就是
    我这个搜索的按钮,如果没有找到就弹出showmessage窗口,提示用户没有找到,这个怎么做
    我做asp的时候有eof\bof我想请问在delphi里面怎么写。
    谢谢啦!
    我按钮的代码
    procedure TForm3.BitBtn3Click(Sender: TObject);
    begin
    if Edit1.Text='' then
    begin
    showmessage('输入数据在进行查询');
    abort;
    end;
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.text:='select * from delphi where name="'+edit1.text+'"';
    adoquery1.open;
    end;
      

  6.   

    你可以这样写:
      sql.add('update table set field1 =:field1,field2 =:field2');
      paramters.parambyname('field1').value :='edit1.text';
      paramters.parambyname('field2').value :='edit2.text';
    对于你的第二个问题:
      with adoquery do
    begin
      close;
      sql.clear;
      ......
      try
       execsql;
      except
      end;
      if recordcount=0 then
      begin
        Application.MessageBox ('没有符合条件的信息!',pchar(Caption),MB_OK);
        exit;
      end;
    end;  
      
      

  7.   

    sql.add('update table set field1 =:field1, field2 =:field2');
      paramters.parambyname('field1').value :=edit1.text;
    这样才对,
    要注意,edit1.text不要加‘’,她本身就是字符串!
      

  8.   

    错了,对于你的第二个问题:
      with adoquery do
    begin
      close;
      sql.clear;
      ......
      try
       open;     //查询用open
      except
      end;
      if recordcount=0 then
      begin
        Application.MessageBox ('没有符合条件的信息!',pchar(Caption),MB_OK);
        exit;
      end;
    end;
      

  9.   

    wjsfr(令狐葱) 说的对,我刚才没看清楚,不好意思。
    应该是edit1.text,没有引号
      

  10.   

    sql.add('update table set field1 =:field1 field2 =:field2');//这句错了
      paramters.parambyname('field').value :='edit1.text' //这也错了,//改为sql.add('update table set field1 =:field1, field2 =:field2')
            paramters.parambyname('field').value :=edit1.text
      

  11.   

    sql.add('update table set field1 =:field1, field2 =:field2')
    这里我这样写
    sql.add('update table set 数据库字段1=:field1, 数据库字段2 =:field2')可以嘛?
      

  12.   

    那么在adoquery里面的sql属性里面编辑sql语句
    就直接update table set field1 =:field1, field2 =:field2
    这句就够了吧?
      

  13.   

    我把这段代码加入我的按钮事件里面是错的阿
    procedure TForm3.BitBtn3Click(Sender: TObject);
    begin
    if Edit1.Text='' then
    begin
    showmessage('输入数据在进行查询');
    abort;
    end;
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.text:='select * from delphi where name="'+edit1.text+'"';
    adoquery1.open;
    try
       execsql;<===================这里有错
      except
      end;
      if recordcount=0 then
      begin
        Application.MessageBox ('没有符合条件的信息!',pchar(Caption),MB_OK);
        exit;
      end;end;
      

  14.   

    哎,你上边不是有adoquery1.open;了吗?象小波波说得那样,把adoquery1.open放在try
    中,把execsql删去,select语句是要返回数据集的,execsql不能返回数据集,execsql对应于insert,update,delete,create等!
      

  15.   

    procedure TForm3.BitBtn3Click(Sender: TObject);
    begin
    if Edit1.Text='' then
    begin
    showmessage('输入数据在进行查询');
    abort;
    end;
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.text:='select * from delphi where name="'+edit1.text+'"';
    adoquery1.open;
    //这里的东西去掉好了。  if recordcount=0 then
      begin
        Application.MessageBox ('没有符合条件的信息!',pchar(Caption),MB_OK);
        exit;
      end;end;
      

  16.   

    wjsfr(令狐葱)
    我试验了
    不行啊
    我用open了也不行
    with adoquery1 do<==============================如果有这行,这里就要出错
    begin
     gytyl(delphi混混)
    if recordcount=0 then<==============================这里出错
      begin
        Application.MessageBox ('没有符合条件的信息!',pchar(Caption),MB_OK);
        exit;
      end;
      

  17.   

    procedure TForm3.BitBtn3Click(Sender: TObject);
    begin
    if Edit1.Text='' then
    begin
    showmessage('输入数据在进行查询');
    abort;
    end;
    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.text:='select * from delphi where name="'+edit1.text+'"';
      try
        open;
      except
        execsql;
      end;
      if recordcount=0 then
      begin
        Application.MessageBox ('没有符合条件的信息!',pchar(Caption),MB_OK);
        exit;
      end;
    end;end;