在前段时间项目过程中倒数据过程中要求动态不同数据库倒数据时遇到的关于数据源的问题,当然,不能ADOQUERY连接的DBF表(未下补丁版本,后发现也可连接)一定要建ODBC进行连接处理,那么ODBC一定要动态建立以排除用户删除ODBC的可能,下面我就把API函数原型及建SQLSERVER和DBF表的语句写下来共享(当然SQLSERVER在ADO状态下不必建立)。
SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;lpszDriverString: String; lpszAttributes: String): Integer;
调用状态下使用:
function SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;lpszDriverString: String; lpszAttributes: String): Integer;stdcall;external 'ODBCCP32.DLL';
建立SQLSERVER的ODBC:
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN,'SQL Server','DSN=Record_ODBC'+ chr(0) +'Server=(local)'+ chr(0) +'Database=master'+ chr(0) +'Description=DragonPC SQLServer ODBC Source'+ chr(0));
{DSN:你的ODBC数据源名称。
Server:你的数据库服务器名称,使用(local)指的是本地计算机安装的数据库。注:最新的SQL Server 2000支持一台计算机运行多个SQL Server服务,这个时候你需要指定SqlSever的InstanceName。
Address:指定SQL Server服务器的网络IP地址。
Database:指定默认数据库名称。
Language:指定默认语言。
Description:备注信息。}
建立DBF表ODBC:
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, 'Microsoft Visual FoxPro Driver' + CHR(0), 'dsn=SourceTable' + CHR(0) + 'BackgroundFetch=Yes' + CHR(0) + 'Description=descripcion de la conexion' + CHR(0) + 'Exclusive=No' + CHR(0) +sourcedbstr + CHR(0) +'Sourcetype=DBF');
其他均雷同,只是在建立DBF表调试了好长时间,写出来希望大家免去浪费时间。
注:以上内容只供初学者遇到类似问题参考。