当前位置: 代码迷 >> VC >> vc 在程序中注册 ODBC 有关问题
  详细解决方案

vc 在程序中注册 ODBC 有关问题

热度:2325   发布时间:2013-02-25 00:00:00.0
vc 在程序中注册 ODBC 问题
我用vc2005作了一个安装程序,希望通过安装程序注册ODBC。
我在网上看到,在程序中可以通过修改注册表和 DLL 两种方式注册ODBC环境。修改注册表方式,我不太放心,怕一旦出错毁了系统。于是我采用了DLL 方式。
网上的原样为:
BOOL odb = SQLConfigDataSource( NULL,ODBC_ADD_DSN, _T("Microsoft Access Driver (*.mdb)\0"),
  _T("DSN=Ball\0DBQ=D:\\BALL\\code.mdb\0DEFAULTDIR=D:\\BALL\0\0");
由于我做的安装程序,需要根据用户的选择确定具体的数据库存放位置,于是我把语句中的第四个参数修改了一下:
CString tt = 用户选择的安装目录;

BOOL odb = SQLConfigDataSource( NULL,ODBC_ADD_DSN, _T("Microsoft Access Driver (*.mdb)\0"),
  下面是我的修改后的样子
  _T("DSN=Ball\0")
  _T("DBQ=") + tt + _T("\\code.mdb") + _T("\0")
  _T("DEFAULTDIR=") + tt _T("\0\0") );
if( !odb )
  AfxMessageBox(_T("未能成功注册"));

程序编译没有问题,但运行后,却提示"未能成功注册"。于是,我又把修改的三个_T 语句中的后两个去掉,只留第一个
  _T("DSN=Ball\0")
在运行,注册成功。可是,没有通过注册语句指定数据库及其存放路径,我心里不踏实。
我想请教一下,我修改的第四个参数错在哪里,没指定数据库及其存放路径是否会出现问题。
在vc 2005 下 SQLConfigDataSource 应该怎样使用。



------解决方案--------------------------------------------------------
LPCSTR Pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts. 

This type is declared in WinNT.h as follows:


typedef __nullterminated CONST CHAR *LPCSTR;
 
  相关解决方案