按照某书上的例子,当调用OnInitADOConn()时,总是打不开数据库,并出现错误ERROR0。请大家帮忙分析一下问题到底在哪里?void ADOConn::OnInitADOConn()
{
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance("ADODB.Recordset");
_bstr_t strConnect="Provider=SQLOLEDB;Server=217-1\SDB;Database=wuhan; uid=sa;pwd=tpbms;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("ERROR0:"+e.Description());
}
}
{
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance("ADODB.Recordset");
_bstr_t strConnect="Provider=SQLOLEDB;Server=217-1\SDB;Database=wuhan; uid=sa;pwd=tpbms;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("ERROR0:"+e.Description());
}
}
解决方案 »
- 请问下怎么用API自己设计一个控件出来?
- 我在对话框中加了几个按钮,正常显示,又加了两个,可后面加的在对话框显示出来后不见了,点击按钮区域才出现?
- vc开发环境设置问题?
- 请问各位,如何解决位图中运动icon,icon的运动轨迹会擦掉一部分位图的问题
- 请问:此语句( delete [] m_pData )如何解释?(m_pData 为float型指针)
- 求助高手:软件修改为支持Win7 版本
- 新手初学,请教int PASCAL WinMain的问题
- RESULT m_xxx 是什么意思?? RESULT是什么结构??
- 请问如何在View类与CDialogBar对话框之间进行传递数据?
- 如何知道一个控件在窗体上的 位置坐标信息
- 关于用查询注册表的方法来判断某个软件是否安装
- 在线等急问:怎样获取数据库时间
这个Server怎么这么怪呢?
{
TRACE("ADODB Error : 0x%08x, 错误描述(%d):\n", ce.Error(), conn->Errors->Count);
for(int i = conn->Errors->Count; i>0; --i)
{
long index = 0;
TRACE("%s\n", (LPCTSTR)(conn->Errors->Item[index++]->Description));
}
}
换一下连接字符串看看,还有给出错误
m_pConnection.CreateInstance("ADODB.Recordset");
有问题,m_pConnection应该是一个连接对象。你怎么调用了数据表对象了
这样用:
m_pConnection.CreateInstance("ADODB.Connection");
或者
m_pConnection.CreateInstance(__uuidof(Connection));//这种用法的参数可能有误,但是有这种用法,具体你查查资料!
还有你要检查你的
_bstr_t strConnect="Provider=SQLOLEDB;Server=217-1\SDB;Database=wuhan; uid=sa;pwd=tpbms;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
我由于手边没有这方面的资料,所以不能说明没有问题,具体的你查查资料!
另外,我听有人说是需要在app wizard 时必须指定数据库连接。如果那时候不指定,后面就没有办法连上去了,改都没法改。是不是真的啊?
app wizard 里也是生成代码
_ConnectionPtr m_pConn;
CString m_sConn="Provider=SQLOLEDB.1;Data Source=192.168.3.9;Initial
Catalog=sode";
m_pConn.CreateInstance("ADODB.Connection");
try
{
HRESULT hr=m_pConn->Open((_bstr_t)m_sConn,"sa","mapper",adConnectUnspecified);
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库 source!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox("不能连接数据库 error!");
return FALSE;
}
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pStream.CreateInstance(__uuidof(Stream));
try{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\vbtest\\db2.mdb;","","",0);
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
这个语句本身就有问题啊,创建连接怎么会用了记录参数呢?