连ADO,错在哪????~~~``

wandou999 2004-10-15 10:27:11
http://community.csdn.net/Expert/topic/3450/3450090.xml?temp=.2066614
-----------------------------------------------------------------------
在class CHotel_MIS1App : public CWinApp中加入
public:
bool ADOExecute(_RecordsetPtr &ADOSet,_variant_t &strSQL);
_RecordsetPtr m_pADOSet;
int m_iLoginCount;
CString m_sCurrentUser;
CHotel_MIS1App();
extern CHotel_MIS1App theApp;
private:
_ConnectionPtr ADOConn;

在stdafx.h中加入:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace\
rename("EOF","EndOfFile")\
rename("LockTypeEnum","newLockTypeEnum")\
rename("DataTypeEnum","newDataTypeEnum")\
rename("FieldAttributeEnum","newFieldAttributeEnum")\
rename("EditModeEnum","newEditModeEnum")\
rename("RecordStatusEnum","newRecordStatusEnum")\
rename("ParameterDirectionEnum","newParameterDirectionEnum")

在BOOL CHotel_MIS1App::InitInstance()加入
m_iLoginCount=0;
if(FAILED(::CoInitialize(NULL)))
{
AfxMessageBox("ADO Init failed");
return false;
}
try
{
ADOConn.CreateInstance(__uuidof(Connection));
ADOConn->Open("DNS=Hotel_MIS1;Provider=MSDASQL","sa","",adConnectUnspecified);
}
catch(_com_error &e)
{
CString err;
err.Format("%s",(char*)(e.Description()));
AfxMessageBox(err);
}
catch(...)
{
AfxMessageBox("Unknown Error");
}
m_pADOSet.CreateInstance(__uuidof(Recordset));
在bool CHotel_MIS1App::ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)
中加入
if(ADOSet->State==adStateOpen)ADOSet->Close();
try
{
ADOSet->Open(strSQL,ADOConn.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdUnknown);
return true;
}
catch(_com_error &e)
{
CString err;
err.Format("ADO Error:%s",(char*)e.Description());
AfxMessageBox(err);
return false;
}
在int CHotel_MIS1App::ExitInstance() 中加入
if(adStateOpen==ADOConn->State) ADOConn->Close();
ADOConn.Release();
if(adStateOpen==m_pADOSet->State)m_pADOSet->Close();
m_pADOSet.Release();
return CWinApp::ExitInstance();

这就是全部内容,麻烦大家了!!
...全文
611 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
bugyouth 2004-11-23
  • 打赏
  • 举报
回复
注意OleInitialize函数在InitInstance函数中的位置,靠后一些
rezood 2004-11-23
  • 打赏
  • 举报
回复
老问题了
李秀国之印 2004-11-10
  • 打赏
  • 举报
回复
to try it: gooyan(超级替补)
zhaogaojian 2004-11-10
  • 打赏
  • 举报
回复
先通过控制面板配置一下
gooyan 2004-10-25
  • 打赏
  • 举报
回复
1.stdafx.h中加入
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2。app文件的InitInstance中加入
if(S_OK!=OleInitialize(NULL))
{
AfxMessageBox("初始化COM组件库错误");
}


下面就是数据库操作
_ConnectionPtr pConn;
_RecordsetPtr pRs;
CString strSQL;
pConn.CreateInstance(__uuidof(Connection));
pConn->CursorLocation=adUseClient;
strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
pConn->Open(_bstr_t(strSQL),"","",-1);

pRs.CreateInstance(__uuidof(Recordset));
pRs->CursorLocation=adUseClient;
pRs->PutActiveConnection(pConn.GetInterfacePtr());

pRs1.CreateInstance(__uuidof(Recordset));
pRs1->CursorLocation=adUseClient;
pRs1->PutActiveConnection(pConn.GetInterfacePtr());

strSQL="select * from catalog order by cataid";
pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
追求自由 2004-10-22
  • 打赏
  • 举报
回复
你连一下别的数据库看能不能连上?
你别用odbc,直连一下看能否成功,我的问题就是这样解决的。
danielzhu 2004-10-21
  • 打赏
  • 举报
回复
UP
shakira008 2004-10-20
  • 打赏
  • 举报
回复
study
muliu92 2004-10-19
  • 打赏
  • 举报
回复
Connection 这个好象是 ADO.Connection 吧!

而且CreateInstance 它的返回值也不是一个bool\BOOL 啊! 不是良好的变成习惯
jayfunk 2004-10-19
  • 打赏
  • 举报
回复
你把!号后边的东东()起来看看
sony19791015 2004-10-19
  • 打赏
  • 举报
回复
gz
nanguadeng 2004-10-19
  • 打赏
  • 举报
回复
AppWizard中选上Automation
wenxinfly 2004-10-19
  • 打赏
  • 举报
回复
借楼主的问一个
if(!m_pConnection.CreateInstance(__uuidof(Connection))) //
{
AfxMessageBox("Error!");
//
}
这个函数有错误
是什么原因?
kugou123 2004-10-18
  • 打赏
  • 举报
回复
贴贴出错信息看看。
快乐鹦鹉 2004-10-15
  • 打赏
  • 举报
回复
放在BOOL CHotel_MIS1App::InitInstance()里面啊
快乐鹦鹉 2004-10-15
  • 打赏
  • 举报
回复
if (!AfxOleInit())
{
AfxMessageBox("初始化OLE失败!");
return FALSE;
}
clack234 2004-10-15
  • 打赏
  • 举报
回复
错误信息或错误提示代码贴出来看看。
内存泄漏 2004-10-15
  • 打赏
  • 举报
回复
代码没有问题啊。。不知道为什么会出现你那样的情况,是不是你import的路径错了??

还有,在int CHotel_MIS1App::ExitInstance() 里面添加下面一句:
::CoUninitialize();
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 全国计算机等级考试二级教程《Python语言程序设计》(2018年版)被视为针对Python入门者和备考人员的核心学习材料。该资料汇总了教材内的所有编程练习答案,这些答案在Python 3.5.3环境中经过实际执行测试,从而保障了代码的准确性和应用价值。备考人员借助这些答案,能够评估自身的学习进度,并深入理解和熟练掌握Python编程的基础原理与方法。 1. Python基础理论:Python作为一门高级编程语言,因其简明扼要的语法结构和卓越的功能表现而备受推崇。基础内容涵盖了变量、数据种类(例如整型、浮点型、字符串、布尔型、列表、元组、字典、集合)、逻辑控制(比如条件判断if-else,循环控制for、while)、函数的声明及使用、模块的引入等。 2. Python高级应用:Python的进阶内容涉及异常管理(try-except-finally结构),类与实例(面向对象编程的基础,包含类的构造、对象的生成、属性与方法的运用、继承机制、多态表现),装饰器(用于调整函数或类的功能特性),上下文管理器(借助with语句实现资源管理)等。 3. 数据文件处理:Python配备了全面的文件操作功能,涉及文件的开启、数据读写、关闭操作,以及多种操作模式(例如r模式用于读取,w模式用于写入,a模式用于追加内容等)。此外,还包括文本文件与二进制文件的转换处理,以及文件的位置调整、复制和删除等操作。 4. 标准库的运用:Python的标准库资源极为丰富,比如os模块提供操作系统接口,sys模块用于获取系统参数,random模块可用于生成随机数值,datetime模块负责处...
代码下载地址: https://pan.quark.cn/s/664854f01855 TCP/IP SOCKET协议构成了互联网通信的基石,它明确了网络设备之间数据交换的规范。TCP(Transmission Control Protocol)是一种以连接为导向、具备可靠性且基于字节流的传输层通信规范,而UDP(User Datagram Protocol)则是一种非连接型且不可靠的传输协议。在实施TCP/IP SOCKET的调试工作中,专业的软件能够协助开发者更清晰地洞察网络通信的流程,精准地找出故障点,并对代码进行改进。 "TCP模拟调试工具"即为一种实用的辅助性软件,它赋予用户模拟TCP连接、发送及接收数据的能力,从而对网络应用程序进行测试和调试。此工具或许具备以下几项功能: 1. **连接模拟**:可以模拟客户端与服务器之间TCP连接的完整过程,涵盖三次握手和四次挥手阶段,从而帮助理解TCP连接的完整生命周期。 2. **数据发送与接收**:支持自定义数据包的发送,并能显示接收到的数据,这对于核实数据传输的准确性极为关键。 3. **误检测与重传**:TCP协议内含误检测和丢失数据自动重传的机制,该工具或许能够模拟这些场景,助力开发者测试其应用的容性能。 4. **流量控制与拥塞控制**:TCP通过滑动窗口机制实现流量控制与拥塞管理,工具或许提供查看和调整这些参数的选项。 5. **端口监听**:能够监听指定的端口,观察数据的进出情况,这对于服务器端程序的调试尤为有益。 6. **日志记录**:记录所有通信事件,便于后续的分析与问题定位。 7. **多线程支持**:针对处理多个并发连接的程序,工具或许提供多线程或并发会话的模拟。 8. **协议解...

4,017

社区成员

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

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