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数据源。