帮忙看看代码,关于数据库连接的

skink 2003-08-09 12:22:53
//读入连结字符串配置文件
fstream iosCfg;
char lpsz_Buffer[ 512 ];
_bstr_t bstr_myConnectString="";

// 清空一用来保存连接字符串

memset( lpsz_Buffer, 0, 512 );

// 打开输入流,取出已定义好的连接字符串
iosCfg.open( "MarineDB.cfg", ios::in|ios::nocreate );

if( !iosCfg.fail())
{

// 打开文件,取得连接字符串
// 将连接串赋给_bstr_t类型
iosCfg.getline( lpsz_Buffer, 512 );
bstr_myConnectString = lpsz_Buffer;
}

// 关闭输入流
iosCfg.close();

//打开数据库
if( bstr_myConnectString == _bstr_t("") )
{
return FALSE;
}//一直到这里没有问题
//_ConnectionPtr pConn;//如果我在这里创建了一个,那么下面的CreateInstance就没有问题,否则,使用C..Doc类中已经定义好的成员变量m_pConn有问题
pConn.CreateInstance(__uuidof(Connection));

try{

pConn->Open(bstr_myConnectString,"","",-1);
m_bConnected = TRUE;//此为成员变量,居然出现Assert错误,晕
//m_pConn = pConn;
}
catch(_com_error e)
{
AfxMessageBox("Database Connection Error.");
return FALSE;
}
return m_bConnected;
...全文
48 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxslyy 2003-08-11
  • 打赏
  • 举报
回复
如果你引用的ADO控件就请不要用下面这两句中的任何一句:
AfxOleInit();
CoInitialize(NULL);
如果你没有.请在C...DOC中请这两句中的一个.
viena 2003-08-11
  • 打赏
  • 举报
回复
m_pConn or pConn?
skink 2003-08-11
  • 打赏
  • 举报
回复
最后up 一次
skink 2003-08-10
  • 打赏
  • 举报
回复
解决问题up
skink 2003-08-09
  • 打赏
  • 举报
回复
已经是public成员,为什么阿
viena 2003-08-09
  • 打赏
  • 举报
回复
m_pConn.
viena 2003-08-09
  • 打赏
  • 举报
回复
m_pConn定义有问题。
楼上的,没必要设为公用的吧?
skink 2003-08-09
  • 打赏
  • 举报
回复
我把m_pConn放到了C...Doc中,public成员,在Doc类中写的函数,如上代码,然后在CMainFrame的OnCreate函数中调用,函数的功能为打开数据库,将所有数据库的表添加到一个属性控件中,属性控件在CMainFrame中创建。
这样做我认为数据库连接要在这个TreeContrl创建完成后才可以将数据库打开并添加所有的表。
fatyee 2003-08-09
  • 打赏
  • 举报
回复
把pConn作为CWinApp的公有成员变量,然后在CWinApp里面连接,最后在CWinApp里面释放
lzd 2003-08-09
  • 打赏
  • 举报
回复
如果你要在不同的地方使用connection,我的意思是把m_pConn设为全局的变量。。。
lzd 2003-08-09
  • 打赏
  • 举报
回复
请把pConn设为公用的。

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧