大家帮帮忙,明天就要用了,关系到我的工作的问题
delphi+ado+access的添加删除修改的语句怎么写?为什么跟连接SQLserver的不一样,我一直都是用ADO连接sql server的,为什么写SQL的时候出现SQL语言错误呢,麻烦大家给个例子给我,谢谢了

解决方案 »

  1.   

    把你的Query里的SQLText贴出来看一下
      

  2.   

    我实在不知道怎么写.原来access里面的语句跟sql server 的不一样..学习别人的写法,总是出现cannot perform this operation on a closed dataset 的错误提示,下面是我的代码,
    添加方法1procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
     try
      adoquery1.insert;
      adoquery1.fieldbyname('un').asstring:=edti1.text;
      adoquery1.fieldbyname('pw').asinteger:=edit2.text;
      adoquery1.post;
    showmessage('添加记录成功');
    except
    showmessage('失败');
    end;end;添加方法 2procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
    try
    temp_adoquery.Append;
    temp_adoquery['un']:= editusername.Text;
    temp_adoquery['pw']:= editpassword.Text;
    temp_adoquery.Post;
    showmessage('添加记录成功');
    except
    showmessage('失败');
    end;
      
    end;菜死了,我都不知道怎么写,12点就过期了,以前没有接触过access都是用sql server来做的,delphi也比较差,可惜了没给多少时间去学.大家能帮帮忙吗?昨天我见没人理我就下了,去找其他的资料,还有人帮忙吗?后悔死了,应该多学点其他的用法.
      

  3.   

    SQL语句:
    INSERT
    名称
    INSERT — 向表中插入新行 INSERT INTO table [ ( column [, ...] ) ]
        { VALUES ( expression [, ...] ) | SELECT query }
      
    输入
    table 
    现存表的名称. 
    column 
    表 table 中的列/字段名. 
    expression 
    赋予 column 的一个有效表达式或值. 
    query 
    一个有效的查询.请参考 SELECT 语句获取有效参数的进一步描述.
      

  4.   

    如果用Append如下:
    with query1 do
    begin
      append;
      FieldByName('un').value:=edituserName.text;
      FieldByName('pw').value:=editpassword.text;
      post;
    end;
    即可!
      

  5.   

    看看你的ADOTable或者ADOQuery控件,将Active属性设为True,就不会出现“cannot perform this operation on a closed dataset”的错误提示了。1、可以在设计程序是直接将ADOTable和ADOQuery的Avtive设为True。
    2、也可以在窗体的OnShow事件里填写代码如下:
        ADOTable1.Active:=true;
        ADOQuery1.Active:=true;
    不知道对你有没有帮助,祝你成功。
      

  6.   

    jaoan ,我用你的方法试过,也是提示from字句语法出错,难道还要设置什么吗?这个添加用到什么控件,都该怎么设置呢?还有修改,删除的语句,该怎么写?我看了别人的源代码,添加和删除的bitbtn里面根本就没有语句可是也能实现,是怎么回事?
      

  7.   

    ADO控件设置问题 “a closed dataset ”应该能说明问题
      

  8.   

    我从来都是这样写的
    AdoQuery.Close;
    AdoQuery.Parameters.ParamByName('Name').Value := edName.Text;
    AdoQuery.Parameters.ParamByName('Tel').Value := edTel.Text;
    AdoQuery.ExecSQL;你可以试试
      

  9.   

    我今天也碰到了access的问题,以前没搞过,也问问各位例如,我想将access表里的某列field1中含有字母a的改为b,
    在sqlserver或Oracle有类似下面的函数可以做到
    update table1 set field1 = replace(field1,'a','b')但不知道access有什么函数可以用?
    也请知道的指教。谢谢!
      

  10.   

    我用的是清水的方法:
    SQL语句: 
    INSERT 
    名称 
    INSERT — 向表中插入新行  INSERT INTO table [ ( column [, ...] ) ] 
        { VALUES ( expression [, ...] )  ¦ SELECT query } 
       
    输入 
    table  
    现存表的名称.  
    column  
    表 table 中的列/字段名.  
    expression  
    赋予 column 的一个有效表达式或值.  
    query  
    一个有效的查询.请参考 SELECT 语句获取有效参数的进一步描述.
    然后就成功了,谢谢大家的帮助。