我想通过点击button按钮,向数据库的表里面插入dbedit中的数据。在button的单击事件中,下面的语句有错,要怎么改?Adoquery2.Edit;
adoquery2.sql.add('insert into table1(name) values('''+dbedit1.text+'));
Adoquery2.post;

解决方案 »

  1.   

    可以考虑这么写:
    string insertStr;......insertStr := 'insert into table1(name) values('
                +''''+trim(dbedit1.text)+''''+')';
    Adoquery2.Edit;
    adoquery2.sql.add(insertStr);
    Adoquery2.post; ... ...这样程序的逻辑也更清楚些!
      

  2.   

    adoquery在delphi中有两种用法,一是打开一个表进行表操作,二是执行SQL语句。一种用法
    adoquery1的SQL语句为select 语句 用OPENadoquery1.open;
    //添加行
    adoquery1.append;
    adoquery1.fieldbyname('字段名').asstring:='abcd';
    .....
    adoquery1.post;
    //修改当前行
    adoquery1.edit;
    adoquery1.fieldbyname('字段名').asstring:='abcd';
    ......
    adoquery1.post;
    //删除当前行
    adoquery1.delete;二种用法
    adoquery1的SQL语句为insert,update,delete等用execsql
    例如:
    adoquery1.sql.clear;
    adoquery1.sql.add('insert into aa (字段1,字段2) values (1,''A'')');
    adoquery1.execsql;adoquery1.sql.clear;
    adoquery1.sql.add('delete  aa ');
    adoquery1.execsql;adoquery1.sql.clear;
    adoquery1.sql.add('update  aa set ........ ');
    adoquery1.execsql;
    楼主的语句可以这样改
    dbedit 可直接关联至adoquery的name字段,只要post即可保存
    用edit1的话这样写
    Adoquery2.Edit;
    adoquery2.fieldbyname('name').asstring:=edit1.text;
    Adoquery2.post;
      

  3.   

    主要是后面的引号不对,应该改成如下
    Adoquery2.Edit;
    adoquery2.sql.add(' insert into table1(name) values('''+dbedit1.text+''')');
    Adoquery2.post;