ado连接数据库问题求救!!!

hiyoung 2007-11-25 12:58:26
问题1:创建一个ADO数据库应用工程,代码如下:
void CExample51View::OnInitialUpdate()
{
CView::OnInitialUpdate();
HRESULT hr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");
//创建Connection对象
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=SQLOLEDB.1;DataSource=DB100.mdf",
"","",adModeUnknown); //连接数据库
}
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);
}
}

运行时出现以下错误:
--------------------Configuration: Example51 - Win32 Debug--------------------
Linking...
Example51View.obj : error LNK2005: "class _com_ptr_t<class _com_IIID<struct _Connection,&struct __s_GUID _GUID_00000550_0000_0010_8000_00aa006d2ea4> > m_pConnection" (?m_pConnection@@3V?$_com_ptr_t@V?$_com_IIID@U_Connection@@$1?_GUID_00000550_0000_0
010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@A) already defined in Example51.obj
Debug/Example51.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.

Example51.exe - 1 error(s), 0 warning(s)
============================================================================================================================================================================================================
问题2:
用ADO在工程中创建新表:按下按钮后新表就创建,代码如下:
void CEX_Database06Dlg::OnNewtableButton()
{
// TODO: Add your control notification handler code here
_ConnectionPtr m_pConnection;
HRESULT hr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=SQLOLEDB.1;Data Source=DB100.mdf","","",adModeUnknown);
}
}
catch(_com_error *e)
{
CString errormessage;
errormessage.Format("连接数据库失败:%s",e->ErrorMessage());
AfxMessageBox(errormessage);
}
_variant_t RecordsAffected;
m_pConnection->Execute("CREATE TABLE StudentInfo(StuNo INTEGER,StuAge INTEGER)",
&RecordsAffected,adCmdText);
}

点击按钮后出现(提示框):
Runtime Error!
Program:H:\......\EX_Database06.exe
This application has requested the runtime to terminated it in an unusual way.
Please contact the application's support team for more information.

刚用ADO,对这些出现的问题总是找不到门,麻烦大家帮我看看。谢谢。
...全文
105 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shakaqrj 2007-11-26
  • 打赏
  • 举报
回复
one or more multiply defined symbols found
----------------------------------------------------
是不是已经在哪边定义了??

2.调试,先锁定哪行出错
yanedanny 2007-11-26
  • 打赏
  • 举报
回复
数据库是SQL Server的,DataSource=DB100.mdf?应该是指定server和database?
hiyoung 2007-11-25
  • 打赏
  • 举报
回复
to shunruo:
问题还是存在,
to lfchen:
我的数据库是SQL Server的,而且写代码时从VC自动提示中看到m_pConnection->OPen()的返回值是HRSESUL类型的。

没有其他原因了吗?
hiyoung 2007-11-25
  • 打赏
  • 举报
回复
谢谢楼上的两个。
hiyoung 2007-11-25
  • 打赏
  • 举报
回复
谢谢楼上的两个。
一条晚起的虫 2007-11-25
  • 打赏
  • 举报
回复
hr=m_pConnection-> Open("Provider=SQLOLEDB.1;DataSource=DB100.mdf",
"","",adModeUnknown); //连接数据库
//1、m_pConnection->Open()返回的不是HRESULT类型
//2、Open时的驱动是MS SQL Server的(SQLOLEDB.1), 要打开的数据库是Access的吧,完全不匹配
//网上有很多ADO的数据库例子,建立楼主下一个看看
//www.vckbase.com,搜索ado
凤矶 2007-11-25
  • 打赏
  • 举报
回复
hr=m_pConnection.CreateInstance(__uuidof(Connection));

4,011

社区成员

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

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