VC6.0中用ado连接数据库出错

1. 在stdafx.h中添加 #import "c:\\program files\\common files\\system\\ado\\msado15.dll"  no_namespace rename("EOF", "adoEOF")
并且要在电脑注册32位的msado15.dll。我的win7下没有注册成功,我后来用的XP(XP系统已经注册了不用自己注册)

2. 在CxxxApp.cpp的InitInstance()函数中添加数据库连接代码,如下。

AfxEnableControlContainer();
    ::CoInitialize(NULL);AfxOleInit();
    HRESULT hr;
    try
    {
        hr = m_pCon.CreateInstance("ADODB.Connection");//创建连接。若电脑没注册成功,则连接就会出错,hr=-2147221164
        if(SUCCEEDED(hr))
        {
            m_pCon->CommandTimeout = 3; //连接延迟设置为3秒
            hr = m_pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=restaurant.mdb","","",adModeUnknown);//连接数据库。此处可能出错,因为mdb文件不兼容(Access2013建的mdb要另存为2000..版本,再在XP上使用)。
        }
        else
        {
            _com_error e(hr);
            AfxMessageBox(e.ErrorMessage());//hr=-2147221164 没有注册类
        }
    }
    catch(_com_error e)
    {
        CString temp;
        temp.Format("连接数据库错误信息:%s,%s",e.ErrorMessage(),e.Description());
        ::MessageBox(NULL,temp,"提示信息",NULL);
        return FALSE;
    }

原文地址:https://www.cnblogs.com/htj10/p/10743109.html

时间: 2024-10-15 18:29:14

VC6.0中用ado连接数据库出错的相关文章

c++连接数据库 在vc6.0

配置相关环境 我的mysql安装路径为E:\mysql-5.5.28-win32所以要在VC中设置include路径和lib的路径. 添加MySql的include目录到VC工作台中Project->Settings->C/C++->Category->Preprocessor->Additional include directories中添加 E:\mysql-5.5.28-win32\include. 添加lib的路径:Tools->Options->Dir

VC6.0 list sort出错

在STL中,排序是个很重要的话题. 1.algorithm 里的sort()只接收RandomAccessIterator用于像vector,dequeue的排序 2.像set,map,这种关联式容器,本身就由RBTree维护了有序,只要遍历一遍就行了. 3.而list比较特殊一点,由于只有BidirectionalIterator.而又不本身有序.所以该容器自带了一个用来排序的函数. 现在有个问题,如果在list里面存的是char*的元素.那么排序的时候,就会按照指针的大小来排.而如果我们本来

c++通过ADO连接数据库

c++通过ADO连接数据库,具体要求步骤如下: 1.要导入连接ADO库文件信息,方法 #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")    rename("BOF","adoBOF")//必须要有(换行要有 \),如果是vc6开发,此句最好放在StdAfx.h

VC++ 通过ADO连接数据库查询时返回空值报错的解决方案

当数据库的字段值允许为空时, 而且此时内容也为空时,则执行查询会出错,例如 CString str = pRecordset->GetFields()->GetItem((long)0)->GetValue(); 或者 str= pRecordset->GetCollect("posInfo"); 会弹出如下窗口提示出错! 更加奇怪的是  catch(...)也抓不到异常 今天碰着个问题算是头弄大了  最后终于弄好了 报错的原因:   在GetCollct返回了

(转)VC6.0中OpenGL开发环境配置

首先简单介绍一下OpenGL: OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性.       OpenGL官方网站(英文)    http://www.opengl.org 然后设置编程的一些环境,及其安装必备文件的步骤如下: 第一步:选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的.但这里我们选择VC++ 6.0作为学习OpenGL的环

存储过程不返回记录集导致ADO程序出错

HRESULT _hr = get_adoEOF(&_result); IsEOF()函数如下:其中ADOCG::_RecordsetPtr m_pRecordset; BOOL IsEOF()       {return m_pRecordset->adoEOF == VARIANT_TRUE;}; m_pRecordset->adoEOF 将执行下面的函数(见msado15.tli) 1    inline VARIANT_BOOL Recordset15::GetadoEOF (

vc6.0 PK vs2010

从VC++6.0不足看VisualC++2010新特性 说起VC,有人想到维生素C(维C),有人想到风险投资(venture capital), 程序员们尤其是做底层开发的程序员或老程序员们第一感觉肯定会想到Visual C++6.0.为什么是6.0而不是其它的版本?这里的原因就不用我再多讲了,因为太经典了!这个经典已经有了10年的光荣历史,微软的Visual Studio系列也已经发展到了Visual Studio 2010.漫长的辉煌中Visual C++6.0也暴露出了一些问题,在这篇文章

[OpenGL] 2、企业版VC6.0自带的Win32-OpenGL工程浅析

一. 建立工程 O(∩_∩)O~上一节介绍了一种非常容易的OpenGL的搭建方法,这一节将就上一节介绍的VC6.0企业版自带的OpenGL Win32 Application建立一个模板工程,并分析这个模板工程,便于今后我们在此基础上进行修改~ PS: 如果有报错,请仔细读上一节的介绍哦~好像Win8不行的! 二. 框架逻辑分析 O(∩_∩)O~工程建好之后主要的就是上图中用红框框起来的文件   2-1. OpenGL1.cpp分析 其中OpenGL1.cpp就是Win32应用程序的主逻辑框架啦

VC6.0打开或者添加工程文件崩溃的解决方法 (转载)

很多学习编程的同学都遇到这样的问题,在Windows操作系统下使用Visual C++ 6.0编程时,如果点击菜单中的[打开]或者[添加],或者按快捷键,都会弹出下图的对话框,出现程序崩溃并退出的情况. 出现这种问题的原因是VC6.0和其他软件冲突所致,网上一般认为是和Office2007或者Office2010冲突,有人说是和Office里的vosio冲突,但是经过检查发现卸载vosio之后问题依旧存在,也有人说是需要重装系统或者重新安装软件,但是这些方法均不可行.         其实这是微