BCB 建立ODBC数据源

前言:

近日我从网上搜索关于程序建立ODBC数据源的资源,发现基本上没有关于BCB 建立ODBC数据源的相关代码和方法,防止各位遇到相同问题,避免大家走弯路,因此整理了一下思路。

本文参考

http://prettyboy.bloghome.cn/posts/14990.html http://study.qqcf.com/web/188/21141.htm

什么是ODBC ?

开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。它实际上是我们要在本章后面加以讨论的ADO的前身。Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。换句话说,访问DBF文件或Access Basic以得到MDB文件中的数据时,无需懂得Xbase程序设计语言。事实上,Visual C++就是这样一个程序设计平台,即Microsoft最初是以ODBC为目标的。    

 你会发现,ODBC工作起来和Windows一样棗它用包含在DLL内的驱动程序完成任务。其实,ODBC提供一套两个驱动程序:一个是数据库管理器的语言,另一个为程序设计语言提供公用接口。允许Visual C++用标准的函数调用经公用接口访问数据库的内容,是这两个驱动程序的汇合点。当然,还有其它和ODBC有关的实用程序类型的DLL。例如,一个这样的DLL允许你管理ODBC数据源。ODBC的实际管理接口出现在SYSTEM文件夹中的某个CPL(控制面板)文件中棗我们在后面要谈到这方面的问题。    

ODBC的确能履行承诺,提供对数据库内容的访问,并且没有太多的问题。它没有提供数据库管理器和C之间尽可能最好的数据转换,这种情况是有的,但它多半能像广告所说的那样去工作。唯一影响ODBC前程的是,它的速度极低棗至少较早版本的产品是这样。ODBC最初面世时,一些开发者曾说,因为速度问题,ODBC永远也不会在数据库领域产生太大的影响。然而,以Microsoft的市场影响力,ODBC毫无疑问是成功了。今天,只要有两种ODBC驱动程序的一种,那么几乎每一个数据库管理器的表现都会很卓越。

ODBC的配置主要是 windows/system32下odbcint.dll 这个动态库中相关函数的调用完成的,当然不同版本的动态库可能有些差异,如果遇到问题,一般来说找个版本比较高的就能解决。 SQLConfigDataSource()的原型如下:

 BOOLSQLConfigDataSource(HWND hwndParent, UINTfRequest,LPCSTR IpszDriver, LPCSTR IpszAttributes);

其中四个参数的用法如下:

 ●参数hwndPwent是父级窗口句柄。如果句柄为NULL,将不会显示一些有关的对话框。如果参数 IpszAttributes提供的信息不够完善,在创建过程中就会出现对话框要求用户提供相应信息。  ●参数fRequest可以设置为下面的数值之一:

ODBC_ADD_DSN: 增加_个新数据源

ODBC_CONHG_DSN: 配置(修改)一个已经存在的数据源

ODBC_REMOVE_DSN: 删除一个已经存在的数据源

ODBC_ADD_SYS_DSN:. 增加一个新的系统数据源

ODBC_CONFIG—SYS—DSN: 更改一个已经存在的系统数据源

ODBC_REMOVE_SYS_DSN:. 删除一个已经存在的系统数据源

●参数lpszDriver是数据库引擎名称,可以参见ODBC管理器中对ODBC驱动程序的描述。比如要加载的是Excel数据库,那么数据库引擎名称就为Microsoft Excel Driver(*.xls)

●参数lpszAttributes为一连串的"KeyName=value" 字符串,每两个KeyName值之间用""字符隔开。KeyName主要是新数据源缺省的驱动程序注册说明,其中最主要的关键字是"DSN"----- 新数据源的名称,其余关键字则根据不同的数据源有不同要求。关于lpszAttributes参数的具体设置,详细可以参考Windows系统目录下帮助文件。  

BCB例程(window xp sp3 、bcb 6.0):

在cpp中加入 #include "Mfc/odbcinst.h"

在工程中加入odbccp32.lib  (D:/Program Files/Borland/CBuilder6/Lib)

然后在处理函数中

 if(SQLConfigDataSource( NULL,ODBC_ADD_DSN, "Microsoft Access Driver (*.mdb)",         "DSN=MyAccessDB;DBQ=D:/MB.MDB;DefaultDir=D:/;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;Description=我的数据库"  ))  ShowMessage("success");

数据源就成功建立了!

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

52vc

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值