ADO 连接数据库问题 异常!

littleeagle007 2006-06-15 05:20:33
ADO 连接数据库 抛出异常: 无效指针!!!!! 请问是怎么回事,连接字符串正确,服务器正常启动…… 请问代码那里不恰当?

BOOL OnIninitADOConn()
{
//::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance("ADODB.Connection");
m_pConnection->Open((_bstr_t)strConn,"","",adModeUnknown);
}
catch (_com_error e) {
//AfxMessageBox(e.Description());

//m_pConnection = NULL;
return FALSE;
}
return TRUE;
}
...全文
208 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Stefine 2006-06-16
  • 打赏
  • 举报
回复
我写的也是在新线程里去实现连接的

1:在线程里COM初始化,最好用这个::CoInitialize(NULL);

2:m_pConnection.CreateInstance("ADODB.Connection");检查其返回值
拼好了 2006-06-15
  • 打赏
  • 举报
回复
使用第三控件ADO,或者说使用控件都必须初始化

可在整个应用程的初使化函数里调用也可以在调用ADO的接口以前调用AfxOleInit()必须在前
handsomerun 2006-06-15
  • 打赏
  • 举报
回复
CreateInstance 返回的是一个HRESULT
你可以去msdn查一下

还有,线程里面是要加那个com初始化的
littleeagle007 2006-06-15
  • 打赏
  • 举报
回复
如何查看m_pConnection.CreateInstance("ADODB.Connection");
的返回值呢? 请问
handsomerun 2006-06-15
  • 打赏
  • 举报
回复
要的,新的线程里面也要这个
你试试呢
littleeagle007 2006-06-15
  • 打赏
  • 举报
回复
在调用该函数前已经AfxOleInit()了,有个不同的是我是在一个新开的线程里调用的该函数。
handsomerun 2006-06-15
  • 打赏
  • 举报
回复
m_pConnection.CreateInstance("ADODB.Connection");
这个创建成功了吗
用返回值看一下

另外
//::CoInitialize(NULL);
这个需要的,不能注释掉
Middle ADO System 三层ADO的Internet远程数据库访问开发套件 获得最新版本: http//midado.cn 特点: 1、完全兼容Borland ADO Component的控件开发 从TCustomADODataset和TCustomADOConnection类继承,可快速从已完成或者开发中的程序进行升级和扩展 2、完全的三层架构 同时支持原生ADO访问模式和三层的扩展访问模式,开发过程同C/S模式一样,运行时设定Enabled属性,即可从C/S变成三层,随时切换模式。 3、后台自动连线机制 客户端在长时间使用过程中,如果网络异常断线,恢复后可继续使用业务功能,不用重新启动应用程序,更加适合在不稳定的网络环境中使用。 4、自动断线功能 客户端长时间不进行操作,服务端可暂时断开客户端连线,当用户需要继续操作时,通过后台自动连线功能,重新连接网络继续操作,对用户的操作没有任何影响。自动断线功能可充分利用系统资源,减少同时在线用户,同时保障每个用户的连接质量。 5、数据库共享连接池 多个客户端共享同一个数据库连接对象,可设定每个客户端独占数据库连接对象时间和自动回收时间。 大量减少数据连接数量,减少数据库的负载,极大提高数据库访问速度。根据设定的缓冲时间,可节约80%~95%连接对象资源 6、多数据库目录支持 一个中间层服务程序可同时提供多个数据库目录的服务,提供多个应用系统的多套数据连接并发服务 7、安全的Internet网应用 通过TCP/IP服务程序,提供Internet的外部数据访问功能,通过服务程序,隔离数据库的直接连接,有效保护数据库安全, 高效的数据压缩和加密传输,提高远程的数据访问速度和安全性。 8、服务端状态监控功能 对服务器的连线和负载状态进行实时监控,可查看每个客户端连接的来源和请求情况,包括数据的收发字节数 9、便于安装和维护 客户端不用装任何客户端数据库驱动和设置数据库连接对象,大量不同的客户端环境中进行客户端数据库连接设定,是需要花费不少人力。(例如Oracle) 使用场合: 1、需要安全的通过Internet远程数据库访问应用程序,如连锁加盟、各地办事处、等分布式应用 2、需要隔离数据库访问的高安全应用程序,例如在线实时交易软件、如股票证券、期货、外汇等交易等 3、大量客户端同时访问的应用程序,例如几千个用户同时连线对数据库造成重大负载的应用。 4、受到正版数据库软件用户连接数的限制,需要用少量许可提供更多客户端服务的应用。例如,10个许可提供给50个用户同时使用。

4,011

社区成员

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

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