大家帮忙看一下:
delphi中通过adoconnection连接mysql数据库,驱动是mysql oledb provider 3.0,
下面代码中的adoquery1和adotable1都连到该adoconnection。
a:所示代码能成功执行,b:所示代码能成功执行,c:所示代码执行出错a:
with  adotable1 do
begin
  insert;
  fieldbyname('name').value := '张三';
  fieldbyname('id').value :='张';
  post;
end;b:
with adoquery1 do
begin
  close;
  sql.clear;
  sql.add('insert into testtable(name,id) values (''mikecal'',''mike'')');
  prepared;
  execsql;
end;c:
with adoquery1 do
begin
  close;
  sql.clear;
  sql.add('insert into testtable(name,id) values (''李四'',''小李'')');
  prepared;
  execsql;
end;到底是什么问题?

解决方案 »

  1.   

    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('insert into testtable(name,id) values (:param1,:param2)');
      paramters.parambyname('param1').value:='张三';
      paramters.parambyname('param2').value:='李四';
      prepared;
      execsql;
    end;我用的是MYODBC3.51
      

  2.   

    我用MYODBC3.51也试成功了,是事先建好一个dsn文件,然后把adoconnection的connectionstring设成该dsn,不过这样的话,发现,连接速度很慢,随便做一个什么操作就要几秒,受不了啊,有没有什么好办法?
      

  3.   

    呵呵用TMySQL控件吧,全开放源代码的,好东东http://www.productivity.org/projects/tmysql
      

  4.   

    我是来学习的,学到不少东西,谢谢各位了。sql.add('insert into testtable(name,id) values (''李四'',''小李'')');改成sql.add('insert into testtable(name,id) values ('+''''李四''''+','+''''小李''')');试试。我没用过ado