ADO 连接数据库 出错!

dd100303161 2011-11-20 12:51:08
这个是字符串

sql.Format("Provider=SQLOLEDB.1;Password=%s;"
"Persist Security Info=True;User ID=%s;"
"Initial Catalog=%s;Data Source=%s",
m_strPwd,m_strUser,m_strDBName,m_strServer);


下面是OPEN 函数
BOOL CAdoDB::Open(LPCTSTR lpszConnect,long lOptions)
{
m_pConn.CreateInstance("ADODB.Connection");
m_pRs.CreateInstance(_uuidof(Recordset));
m_strConn=lpszConnect;
if(m_strConn.IsEmpty())
{
return FALSE;
}
if( IsOpen()) Close();
try
{
return (m_pConn->Open(_bstr_t(m_strConn),"","", lOptions)==S_OK);
}
catch (_com_error e)
{

AfxMessageBox(e.ErrorMessage());//都是这条语句报错
}
return FALSE;
}


...全文
91 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
一条晚起的虫 2011-11-23
  • 打赏
  • 举报
回复
// 连接字符串的获取可以新建一个.udl文件,然后连接,成功后用记事本打开,拷贝出来就行。
// Open的时候,具体是什么错误?
pp198712163374 2011-11-23
  • 打赏
  • 举报
回复
连接字符串写错了!!!!!!
!!!!!!!
九度空间 2011-11-23
  • 打赏
  • 举报
回复
网上的例子一大把啊
ystemni 2011-11-23
  • 打赏
  • 举报
回复
算了补上try catch

catch(_com_error &e)
{
AfxMessageBox(e.Description());
}
ystemni 2011-11-23
  • 打赏
  • 举报
回复

OnInitDialog()
{
……
AfxOleInit();
CoInitialize(NULL);
p_Conn.CreateInstance(__uuidof(Connection));
CString strConn = "……";
HRESULT hr = p_Conn->Open((_bstr_t)strConn, "", "", adModeUnknown);
if (FAILED(hr))
{
//数据库连接失败
}
if(FAILED(p_Rs.CreateInstance(__uuidof(Recordset))))
{
//数据集初始化失败
}
}


自己加try catch
saiyaman5 2011-11-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gold_water 的回复:]

改成:AfxMessageBox((LPCTSTR)e.Description());
[/Quote]

+1
zyq5945 2011-11-21
  • 打赏
  • 举报
回复
用这个软件试试
JoeBlackzqq 2011-11-21
  • 打赏
  • 举报
回复
VC连接SQL Server2005,参考下:
pConn->ConnectionString = "driver={SQL Server};Server=(local);DATABASE=pubs;UID=sa;PWD=xxx";
dd100303161 2011-11-20
  • 打赏
  • 举报
回复
明早起来 看看 新手 求大侠
dd100303161 2011-11-20
  • 打赏
  • 举报
回复
半夜估计没人来
dd100303161 2011-11-20
  • 打赏
  • 举报
回复
我试试
gold_water 2011-11-20
  • 打赏
  • 举报
回复
改成:AfxMessageBox((LPCTSTR)e.Description());

4,011

社区成员

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

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