c++ builder 动态设定odbc数据源

原创 2002年04月05日 09:25:00

本文以access为例
需要文件 odbcinst.h(bcb或vc的include目录)  odbccp32.dll(winnt/system32/目录) implib.exe(通过dll生成lib库) coff2omf.exe (将coff库转化为omf库)


首先将上面文件拷贝到工程目录,
执行下面命令:
implib.exe odbccp32.lib odbccp32.dll
coff2omf Odbccp32.lib


下面程序的功能为当应用程序启动时,动态添加/修改一个指向当前目录的,名为test的系 统数据源。



新建一个工程,在工程主文件(含有winmain函数)中添加
#include <odbcinst.h>
USELIB("odbccp32.lib");//lib在工程当前目录


 


修改后的代码如下;
file://---------------------------------------------------------------------------


#include <vcl.h>
#include <odbcinst.h>


#pragma hdrstop
USEFORM("main.cpp", Form1);
file://工程的其他单元申明.....
USELIB("odbccp32.lib");
file://---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try
        {


                 Application->Initialize();
                 AnsiString  Data,DataPath,dbpath;
                 unsigned char temp[255];//接收转化后的连接字符串
                 LPSTR ch;//字符串指针相当于char *
                 DataPath=GetCurrentDir();//获取当前目录             
                 Data=DataPath+"//test.mdb/b";//假定当前数据库为test.mdb
                 dbpath="DSN=test/bDBQ="+Data+"DEFAULTDIR="+DataPath+"/b/b";
                  file://构造odbc连接字符串,test为数据源名,非法字符先用/b代替
                 
                 ch=dbpath.c_str();//将AnsiString转化为字符串
                  int i=0;
                 while(*ch!='/0')//查找并替换非法字符,并装入字符数组
                 {


                  if(*ch=='/b')
                   *ch='/0';
                   temp[i]=*ch;
                   ch++;
                   i++;
                 }
                


                 if(::SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,(LPSTR)"Microsoft Access Driver (*.mdb)/0",(LPSTR)temp))//修改或添加数据源,如果成功,程序正常启动
               {
                
                 Application->Title = "动态设定odbc数据源";


                 Application->CreateForm(__classid(TForm1), &Form1);
                
                 Application->Run();
                 }
                 else
                 {
                  ShowMessage("数据库设定失败!");
                  Application->Terminate();
                 }
        }
        catch (Exception &exception)
        {
                 Application->ShowException(&exception);
        }
        return 0;
}
file://---------------------------------------------------------------------------



参考:c++ builder 应用开发大全  msdn


 

 

VC动态建立ODBC数据源

动态创建数据源需要用到的API:SQLConfigDataSource,需要包含的头文件为:#include ,需要包含静态库:#pragma comment(lib, "ODBCCP32.lib")...
  • netanimals
  • netanimals
  • 2011年07月12日 17:25
  • 4470

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

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

ODBC 动态配置数据源

SQLConfigDataSource( HWND hwndParent,                                WORD fRequest,             ...
  • playboy1
  • playboy1
  • 2011年10月21日 09:52
  • 540

在LabVIEW中动态配置ODBC数据源

在LabVIEW中动态配置ODBC数据源1  前言ADO作为Microsoft开发数据库应用程序的最新接口,是一种提供访问各种数据类型的连接机制。由于它提供了比 DAO和RDO更加灵活的技术和更为广泛...
  • laipin7
  • laipin7
  • 2007年08月05日 16:33
  • 4989

图解各种数据库数据源(ODBC)配置

1.       启动系统数据源;2.       新增Access数据源;A.      点击”新增”,选择”Microsoft Access Driver(*.mdb)”驱动,点击”完成”; B....
  • zhunj80
  • zhunj80
  • 2007年12月24日 12:44
  • 7470

添加和使用ODBC数据源

1.添加用户DSN         我使用的是VC++6.0连接SQL Server2000数据库。首先将SQL Server2000正确进行安装,并且安装它的SP3和SP4补丁。在安装SP3补丁的...
  • chenbinqq
  • chenbinqq
  • 2013年12月07日 16:14
  • 1784

【数据库】——ODBC数据源管理器 和 三种DSN(还记得是自己用过吗?)

ODBC数据源管理器 ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的...
  • z15732621736
  • z15732621736
  • 2015年08月13日 21:40
  • 1461

C#连接 ODBC 数据源时的默认驱动程序问题

最近在做一个程序,需要在C#中连接ODBC数据源。ODBC是开放数据库连接(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open ...
  • wangato
  • wangato
  • 2017年07月01日 16:21
  • 492

如何建立ODBC数据源

  建立ODBC数据源对于在使用ASP对数据库进行操作时是必要的,虽然他很简单,却是必须的一步。现在我把他记录下来,防止以后我把这部分东西忘掉,也和广大初学者一起分享。首先进入控制面版的性能和维护部分...
  • sghgcn
  • sghgcn
  • 2008年02月09日 18:01
  • 10225

Windows系统创建ODBC数据源

Windows下创建ODBC数据源
  • hao2244
  • hao2244
  • 2015年05月13日 09:29
  • 2321
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++ builder 动态设定odbc数据源
举报原因:
原因补充:

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