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

王朝网络·delphi·作者佚名  2006-01-08
宽屏版  字体: |||超大  

在前段时间项目过程中倒数据过程中要求动态不同数据库倒数据时遇到的关于数据源的问题,当然,不能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表调试了好长时间,写出来希望大家免去浪费时间。

注:以上内容只供初学者遇到类似问题参考。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有