有一段代码用的是Tquery
query1.Close ;
  query1.SQL.Clear ;
  query1.SQL.Add('insert T1 values(:a,:b,:c)');
  query1.ParamByName('a').AsString := Trim(edit1.Text );
   query1.ParamByName('b').AsString := Trim(edit2.Text );
  query1.ParamByName('c').AsInteger  :=StrToInt(Trim(edit3.Text ));    query1.ExecSQL ;
书上很多介绍Tquery组建的使用,很多介绍BDE的使用,但介绍ado的很少,只说和他们差不多
请问高手门如果用adoquery写上面那插入代码的话中间那里怎么写啊
adoquery没有ParamByName方法,只有fieldbyname这种方法,我晕,我喜欢用ado,谢谢高手帮帮我啊,我刚学习,55555

解决方案 »

  1.   

    ADO也一样的,比如var ADOQuery1:TADOQuery;
    begin  ADOQuery1:=TADOQuery.create;
      ADOQuery1.connectionString:=...;
      ADOQuery1.sql.add('select * from table1 where age=25');
      ADOQuery1.execsql;
      ADOQuery1.open;
      while not ADOQuery1.eof do
      begin
        ADOQuery1.edit;
        ADOQuery1.fieldbyname('f1').AsInteger=StrToInt(Trim(edit3.Text ));
        ADOQuery1.post;
        ADOQuery1.next;
      end;
         当然上面完全可以用一句update完成,ADO也有参数
      

  2.   

    谢谢高手,小妹已经决绝了,用的是ADOQuery1.Parameters.pa ..byname('a'),value刚才主要后面还有个属性没有跟
    刚才在使用tquery组建的时候,老是要运行时候老要跳登陆数据库的对话框,这个在Tquery中是哪个属性去掉啊,还有那个database属性,我想在代码中设置,比如query1.database:='lyj'结果显示错误,各位高手帮帮我啊,谢谢
      

  3.   

    晕,你不是用的ADO吗?怎么又BDE了?汗!!~~~~不管是ADO还是BDE的都有数据库的连接控件ADO是ADOConnection控件BDE是TDatabase控件这两个控件都有loginprompt属性,设置为false就行了
      

  4.   

    query1.Close ;
      query1.SQL.Clear ;
      query1.SQL.Add('insert T1(field1, field2, field3) values(:a,:b,:c)');
      query1.ParamByName('a').AsString := Trim(edit1.Text );
       query1.ParamByName('b').AsString := Trim(edit2.Text );
      query1.ParamByName('c').AsInteger  :=StrToInt(Trim(edit3.Text ));
      

  5.   

    1:
    adoquery没有ParamByName方法,只有fieldbyname这种方法,我晕
    ===============================================================
    ADO也有,只不过是AdoQuery.Parameters.ParamByName......2:其实插入新记录很简单的,首先把对象表打开,Append一条记录,然后给所有非空字段赋值就行了
    {以下是我一小段实际代码,添加一个新员工记录,前一段判断如果不要可以去掉,但一定要把对象表
    处于OPEN状态;}
    //
      with AskQuery do
        begin
          close;
          sql.Clear;
          sql.Add('select * from Tab_UserList');
          sql.Add('where UserID=:UserID or UserName=:UserName');
          Parameters.ParamByName('UserID').Value:=StrToInt(EmpNoEdt.Text);
          Parameters.ParamByName('UserName').Value:=Trim(EmpNameEdt.Text);
          open;
          if Not(Isempty)
            then
              begin
                Application.MessageBox('此工号或此姓名的人在员工表中已经存在!','XX监控管理系统',0);
                Exit;
              end;
        end;
    //
      with AskQuery do
        begin
          Append;
          FieldByName('UserID').AsInteger:=StrToInt(EmpNoEdt.Text);
          FieldByName('UserName').AsString:=Trim(EmpNameEdt.Text);
          FieldByName('UserLevel_Code').AsInteger:=AdoDm.QEmpLevelMTN.FieldValues['UserLevel_Code'];
          FieldByName('Password').AsString:='8888';
          FieldByName('ValidFlag').AsInteger:=1;
          post;
        end;
      

  6.   

    另外,好久没写程序了,我好象记得用INSERT应该是 INSERT INTO [TABLE] (FIELD) VALUES () 吧?