vc连接access2003出错,头都大了runtime错误。。。跪求!!在线等
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc连接access2003出错,头都大了runtime错误。。。跪求!!在线等相关的知识,希望对你有一定的参考价值。
void CStudentDlg::OnButton1()
// TODO: Add your control notification handler code here
AfxOleInit();
pConn.CreateInstance(__uuidof(Connection));
pRst.CreateInstance(__uuidof(Recordset));
try
pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);
catch(_com_error e)
AfxMessageBox("数据库连接失败确认路径先");
try
pConn->Execute("select * from table1",NULL,adCmdText);
catch(_com_error e)
AfxMessageBox("执行查询出错!");
while(!pRst->adoEOF)
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
(_bstr_t)pRst->GetCollect("id"));
pRst->MoveNext();
pRst->Close();
pConn->Close();
pRst.Release();
pConn->Release();
ODBC访问数据库得配置数据源
现在用VC、MFC访问数据库常用的技术是ADO,很实用!
导入ADO库
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF")
2、用导入的动态库的指针操作数据库.
打开数据库连接
_ConnectionPtr m_pConn; // 数据库连接指针
// 创建Conneciton对象
m_pConn.CreateInstance(_T("ADODB.Connection"));
用ConnectionPtr 的open方法m_pConn->Open(_bstr_t(m_sConn),
_T(""), _T(""), lOptions));
m_sConn为你连接数据库的信息,你应该按照你的要求打开数据库
然后你用打开的那个连接进行操作数据库。比如
_RecordsetPtr pRec = m_pConn->Execute(_bstr_t(pszSql), NULL, CmdText);
pszSql 就你要操作数据库的SQL语句。在这个SQL语句里你可以创建表、更新表等。
用ADO访问的时候要求初始他COM库和释放COM对象
// 初始化COM环境(库)
::CoInitialize(NULL);
//释放COM对象
::CoUninitialize();
ODBC访问数据库
配置ODBC数据源:打开控制面板下的“数据源”,弹出“ODBC数据源管理器”,选择DSN选项卡-》添加->你选择你的SQL Server选项,单击完成。如图然后你再按照向导提示添加。
代码中用ODBC访问数据库你得加上afxdb.h头文件,
用CDataBase 类连接数据库、CRecordSet类查询记录。
现在在VC访问数据库常用的是ADO访问,你可以找一下我前面的回答有ADO访问数据库的步骤。
CDataBase m_cODBCDb;
用CDataBase类的OpenEx()函数打开数据库连接。连接字符串你自己构造一下。
定义一个与上面数据库相关的查询对象
CRecordSet m_cODBCRec(&m_cODBCDb);
用这个查询对象的open方法就可以执行SQL语句与数据库交互了; 参考技术A 给你一个类:
//ADOConn.h
#import "C:\Program Files\Common Files\System\ado\msado15.dll"no_namespace \
rename("EOF","adoEOF")rename("BOF","adoBOF")
class ADOConn
public:
BOOL ExecuteSQL(_bstr_t bstrSQL);
ADOConn();
virtual ~ADOConn();
//添加一个指向Connection对象的指针
_ConnectionPtr m_pConnection;
//添加一个指向Recordset对象的指针
_RecordsetPtr m_pRecordset;
_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
void ExitConnect();
void OnInitADOConn();
;
//ADOConn.cpp
#include "ADOConn.h"
DOConn::ADOConn()
ADOConn::~ADOConn()
void ADOConn::OnInitADOConn()
//初始化OLE/COM库环境
::CoInitialize(NULL);
try
//创建connection对象
m_pConnection.CreateInstance("ADODB.Connection");
//设置连接字符串
_bstr_t strConnect="uid=;pwd=;DRIVER=Microsoft Access Driver (*.mdb);DBQ=shujuku.mdb;";
//SERVER和UID,PWD的设置根据实际情况来设置
m_pConnection->Open(strConnect,"","",adModeUnknown);
//捕捉异常
catch(_com_error e)
//显示错误信息
AfxMessageBox(e.Description());
void ADOConn::ExitConnect()
//关闭记录集和连接
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
//释放环境
::CoUninitialize();
_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)
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)
e.Description();
return false;
参考技术B 我觉得吧,应该是这里出问题了啊:
m_pConnection-Open(Provider=Microsoft.Jet.OLEDB.4.0;Data
把上面的4.0 改成 5.0
m_pConnection-Open(Provider=Microsoft.Jet.OLEDB.5.0;Data
试试看看!
MYSQL连接问题
就是出现这个问题··先前发过两个贴·请教了些高手·但是还是没有解决问题···希望以前遇到过类似问题并解决了的朋友帮我解决下···这里说不清楚的话加Q·371838539···整了一天了·头都大了··
哎、。还是什么问题都没解决啊··还有没有高人·····
如果出现"ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)", 说明你的MySQL服务还没有启动。
首先应该启动mysql服务,如果你的mysql是安装版,可通过在dos窗口中输入net start mysql命令,启动mysql。追问
我在服务里面找不到MYSQL诶
追答如果你的mysql安装版,可以通过在dos窗口执行net start mysql就可以启动mysql服务了。你试下。
追问能加Q教下嘛?我现在头都晕了···搞不懂啊
参考技术A 请确认Mysql服务是否启动.端口号是否是安装时设置的那个.追问服务里面没有MYSQL····
能加Q教我下吗?
删除MYSQL重新安装
追问我试过了诶·几次了··也换过不同的版本··都还是同样的情况
追答你服务里没有MYSQL就是没有安装成功.安装成功应该会有个mysql名字的服务.在服务里选中一条后连按m y 就可以定位到该服务
追问我是按照那个一步一步安装的·。诶··那要怎么样才能安装成功呢·?头都整晕了
追答你点击开始-所有程序-MySql-MySQL Command Line Client 进去后输入root的密码 看看是不是能登陆 如果能 Mysql就没问题 不能就是你安装的有问题
参考技术B 看一下MySQL的服务是不是关了,或者是不是端口问题?看一下这个网址http://faq.comsenz.com/?action-viewnews-itemid-111,希望对你有帮助。 参考技术C 加我百度hi好友吧,我远程帮你调试下。 我已经加你Q了。
以上是关于vc连接access2003出错,头都大了runtime错误。。。跪求!!在线等的主要内容,如果未能解决你的问题,请参考以下文章