• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

delphiodbc连接mysql数据库时一次运行多条SQL语句的方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1,问题缘起

某个delphi程序使用odbc驱动,通过adoConnection连接mySQL数据库。

程序启动时,若数据库不存在则需要创建数据库及其中的表。

建表SQL在navicat中运行无误,但在delphi程序中运行出错:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'XX' at line 

2,问题分析

网上查资料得知,adoConnection连接mySQL数据库,默认只能运行一条SQL语句,不能执行多条语句。即使是将多条语句中的分隔符号(;)去掉也不行。

那么,如何让adoConnection支持一次运行多条SQL语句呢?网上提到如下解决方案:

  • 在MySQL的连接字符串中设置allowMultiQueries参数置为true
  • 设置 ODBC -- 配置 --Detials -- Flags 3 -- 钩上 Allow multiple statements
  • 打开 MySQL Connector/ODBC Data Source Configuration 在 Connection 中找到一条设置 Allow multiple statements,勾上此项

但上述方法对使用adoConnection的delphi程序均不适用。

3,解决方案

https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-connection-parameters.html

到上述mySQL的官网上查看 ODBC Connection Parameters 的设置,

其中option 有 MULTI_STATEMENTS设置选项 67108864。因此,

ConnectionString := 'Driver={MySQL ODBC 5.1 Driver};Server=192.168.0.2;Port=3306;Database=pgis;User=root;Password=mysql;Option=3;';

改为

ConnectionString := 'Driver={MySQL ODBC 5.1 Driver};Server=192.168.0.2;Port=3306;Database=pgis;User=root;Password=mysql;Option=67108864;';

 

再次运行程序,建库建表成功!

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
1 MATLAB常微分方程求解发布时间:2022-07-18
下一篇:
Delphi工程选项配置发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap