| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 945 人关注过本帖
标题:dll连接数据库的问题?
只看楼主 加入收藏
长发飘飘
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-12-15
收藏
 问题点数:0 回复次数:4 
dll连接数据库的问题?

我在DLL中新建了一个对话框,然后插入一个Generic类型的类ADOConn
ADOConn.H加入的代码
class ADOConn
{
public:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;

ADOConn();
virtual ~ADOConn();
void OnInitADOConn();
_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
BOOL ExecuteSQL(_bstr_t bstrSQL);
void ExitConnect();
};

ADOConn.CPP加入的代码
void ADOConn::OnInitADOConn()
{
::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect="Provider=SQLOLEDB;Server=MY-TOMATO;Database=MY-TOMATO;uid=sa;pwd=123";
m_pConnection->Open(strConnect,"","",0);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pRecordset.CreateInstance(_uuidof(Recordset));
m_pRecordset->Open(bstrSQL, m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
return m_pRecordset;
}
BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}
void ADOConn::ExitConnect()
{
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
::CoUninitialize();
}
在StdAfx.h加入的代码
#import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")


会出现error C2011: 'LockTypeEnum' : 'enum' type redefinition
error C2011: 'DataTypeEnum' : 'enum' type redefinition
error C2011: 'FieldAttributeEnum' : 'enum' type redefinition
error C2011: 'EditModeEnum' : 'enum' type redefinition
error C2011: 'RecordStatusEnum' : 'enum' type redefinition
warning C4146: unary minus operator applied to unsigned type, result still unsigned
error C2011: 'ParameterDirectionEnum' : 'enum' type redefinition
Error executing cl.exe.
1.dll - 6 error(s), 0 warning(s)的错误
而如果建在MFC EXE中就没有错误,这是为什么?哪位高手可以找点一下!


搜索更多相关主题的帖子: 数据库 ADOConn dll void 对话框 
2007-03-17 21:08
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

stdafx.h里的这个头文件注释就好了

#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h> // MFC DAO database classes
#endif // _AFX_NO_DAO_SUPPORT


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-03-17 23:24
长发飘飘
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-12-15
收藏
得分:0 
回复:(长发飘飘)dll连接数据库的问题?

楼上我试了还是不行呀!还是6个错误!你试了没有?

2007-03-18 13:13
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
我试了,可以的啊

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-03-19 13:08
长发飘飘
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2004-12-15
收藏
得分:0 
楼上能不能把程序打包发到我的邮箱wei_zhang73@yahoo.com.cn我先谢谢了!
2007-03-19 14:01
快速回复:dll连接数据库的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024991 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved