delphi中动态创建MySQL的ODBC连接 --转

转载 2006年05月20日 12:46:00

1、用Delphi连接MySQL数据库,一般推荐两种方式:dbExpress,ODBC。dbExpress的效率较高,但对于本地客户端数据集比较麻烦。ODBC非常通用,如果用ODBC作为数据库访问层,后台数据库可以很容易切换,而代码基本不用修改。我们假设用ODBC连接MySQL数据库,首先要下载MySQL的ODBC驱动,到MySQL的官方网站就可以下载,然后安装即可。

2、在程序中一般要根据用户的配置自动配置ODBC,而不是让用户打开ODBC的配置窗口进行手工配置。ODBC的配置信息一般写在注册表中: HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBC.INI/ODBC Data Sources。我们可以通过写注册表的方法来建立ODBC连接,但操作注册表还算麻烦;为了简单,采用ODBC驱动提供的配置API函数:SQLConfigDataSource。

首先在Delphi单元中导入SQLConfigDataSource的声明:

function SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;lpszDriverString: String; lpszAttributes: String): Integer;stdcall;external 'ODBCCP32.DLL';

在需要配置ODBC的地方执行SQLConfigDataSource函数:

  SQLConfigDataSource(0, 4, 'MySQL ODBC 3.51 Driver',
            'DSN=yourdsnname' + chr(0) +
            'DATABASE=yourdatabase' + chr(0) +
            'SERVER=192.168.10.36'+chr(0) +
            'UID=root' + chr(0) +
            'PWD=yourpwd' + chr(0));

第一个参数固定为0。

第二个参数是配置操作类型:
#define ODBC_ADD_DSN 1
#define ODBC_CONFIG_DSN 2
#define ODBC_REMOVE_DSN 3
#define ODBC_ADD_SYS_DSN 4
#define ODBC_CONFIG_SYS_DSN 5
#define ODBC_REMOVE_SYS_DSN 6
#define ODBC_REMOVE_DEFAULT_DSN 7

第三个参数是数据库驱动的名称。
第四个参数是配置属性的字符串,每个属性间一定用'/0'分隔,Delphi中可以用chr(0)。

执行完后就建立了名称为yourdsnname的ODBC数据源,你可以重复调用上面的函数而不用担心会建立多个同名的
ODBC数据源。

相关文章推荐

动态连接数据库及动态建立odbc’dsn的delphi实现

在form或Data Modules上放置Tdatabase控件,属性设置如下:   object dbWork: TDatabase     DatabaseName = work     Logi...

动态添加ODBC数据源的两种方法

在使用 VC、 VB、 Delphi等高级语言编写数据库应用程序时,往往需要用户自己在控制面板中配置 ODBC数据源。对于一般用户而言,配置 ODBC数据源可能是一件比较困难的工作。而且,在实际应用中...

[Delphi]delphi中动态创建MySQL的ODBC连接

1、用Delphi连接MySQL数据库,一般推荐两种方式:dbExpress,ODBC。dbExpress的效率较高,但对于本地客户端数据集比较麻烦。ODBC非常通用,如果用ODBC作为数据库访问层,...

在DELPHI程序中自动设置ODBC数据源

在DELPHI程序中自动设置ODBC数据源 ------------------------------------------------------------------------------...

在Delphi里调用API函数动态建立ODBC数据源。

   在前段时间项目过程中倒数据过程中要求动态不同数据库倒数据时遇到的关于数据源的问题,当然,不能ADOQUERY连接的DBF表(未下补丁版本,后发现也可连接)一定要建ODBC进行连接处理,那么ODB...

动态创建ODBC连接的演示程序

  • 2006年01月13日 09:51
  • 449KB
  • 下载

Delphi7下面关于动态创建控件和释放的个人总结

昨天,一个网友在动态创建控件时释放出了错。他的情况是,动态创建了N个Panel,然后双击Panel就释放掉该Panel。可问题就来了,一释放就出错。然后就一顿讨论。当然也有其他的高手给出了代码,可高手...

通过ODBC的API动态创建DSN

  • 2014年08月27日 18:05
  • 20.42MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:delphi中动态创建MySQL的ODBC连接 --转
举报原因:
原因补充:

(最多只允许输入30个字)