MFC-ODBC自动注册数据源

自动注册ODBC数据源,如下代码可直接放在对话框初始化函数OnInitDialog中:

       /*获取应用程序exe所在路径*/

CString szPath; 
GetModuleFileName(NULL,szPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH); 
szPath.ReleaseBuffer (); 

int nPos; 
nPos=szPath.ReverseFind ('\\'); 
szPath=szPath.Left (nPos); 
CString szFile = szPath + "\\odbc.accdb"; 

char szAtr[256]; 
        //如下代码不能替换为sprintf(szAtr,"DSN=%s\0DBQ=%s\0DEFAULTDIR=%s\0\0","ODBC_TEST", szFile,szPath); 
        //原因:sprintf仅能拷贝处理后的字符串,遇到‘\0'后结束。导致仅能将szAtr设置为“DSN=%s\0”,这样导致注册数据源的属性不全。
sprintf(szAtr,"DSN=%s!DBQ=%s!DEFAULTDIR=%s!!","ODBC_TEST", szFile,szPath); 

int nlen; 
nlen = strlen(szAtr); 
for (int i=0; i<nlen; i++) 
{
if (szAtr [i] == '!') 
szAtr [i] = '\0'; 


/*自动注册ODBC数据源*/
if (FALSE == SQLConfigDataSource(NULL, ODBC_ADD_DSN, 
"Microsoft Access Driver (*.mdb, *.accdb)\0", 
(LPCSTR)szAtr)) 
{
AfxMessageBox("SQLConfigDataSource Failed"); 
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值