VC连接数据库到底怎么设置啊?
答案:3 悬赏:60
解决时间 2021-03-15 21:56
- 提问者网友:清羽墨安
- 2021-03-14 22:17
ODBC、ADO的都给了一大堆代码、但是代码要写在哪里就没说。。编译就出错。。谁能说清楚点啊~!我是用SQL Server做的数据库、就是想知道怎么连接、但是用动态控件又好像可以直接读取数据库的表信息、搞不清楚。。。
最佳答案
- 二级知识专家网友:深街酒徒
- 2021-03-14 22:29
(1)打开VC工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。
(2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。
Lib目录下还有debug和opt两个目录,建议选debug。
(3)在“Project settings->Link:Object/library modules”里面添加“libmysql.lib”。
(4)在stdafx.h里面添加如下的内容:
#include "mysql.h"
#include "winsock.h"
#pragma comment(lib,"libmySQL.lib"
(2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。
Lib目录下还有debug和opt两个目录,建议选debug。
(3)在“Project settings->Link:Object/library modules”里面添加“libmysql.lib”。
(4)在stdafx.h里面添加如下的内容:
#include "mysql.h"
#include "winsock.h"
#pragma comment(lib,"libmySQL.lib"
全部回答
- 1楼网友:不羁的心
- 2021-03-14 23:56
// 要是有odbc、ado,首先必须对要初始化,在cmyapp的initinstance函数中需要加入如下代码
bool cmyapp::initinstance()
{
// initialize ole libraries
afxenablecontrolcontainer();
if (!afxoleinit())
{
afxmessagebox(idp_ole_init_failed);
return false;
}
m_pmainwnd = null;
... .....
}
_connectionptr m_faxdatalink;
/// 初始化数据库
inidatalink()
{
cstring sql="driver={sql server};server=150.0.1.131;uid id=;pwd=;database=餐饮管理";
_bstr_t conn = sql;
_bstr_t name;
_bstr_t code;
hresult hr = 0;
try
{
// 创建连接智能指针"adodb.connection"
hr = m_faxdatalink.createinstance(__uuidof(connection));
m_faxdatalink -> open(conn, "", "", -1);
// 设置连接超时
m_faxdatalink->putcommandtimeout(5);
}
catch (_com_error & error)
{
// 出错处理
return 0;
}
return 1;
}
这里还只是链接到了数据库,以后就可以利用这个链接,打开数据库表,还要知道包含哪些文件不要搞错,问题太多,要一个一个的提,不要在一个问题中提多个问题。
具体的步骤应该是:
1.初始化_connectionptr,见上面的初始化函数
2.打开数据表
// 结果集
_recordsetptr m_recoptr;
m_recoptr->open(query, _variant_t((idispatch*)m_faxdatalink), adopenkeyset,
adlockoptimistic, adcmdtext);
3.对数据表进行读写
_variant_t var_value;// 字段值
_variant_t name=name; // 字段名称
var_value=m_recoptr->getcollect(name);
- 2楼网友:气场征服一切
- 2021-03-14 22:35
// 要是有odbc、ado,首先必须对要初始化,在CMyApp的InitInstance函数中需要加入如下代码
BOOL CMyApp::InitInstance()
{
// Initialize OLE libraries
AfxEnableControlContainer();
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
m_pMainWnd = NULL;
... .....
}
_ConnectionPtr m_FaxDataLink;
/// 初始化数据库
IniDataLink()
{
CString SQL="Driver={SQL Server};Server=150.0.1.131;Uid Id=;Pwd=;Database=餐饮管理";
_bstr_t conn = SQL;
_bstr_t name;
_bstr_t code;
HRESULT hr = 0;
try
{
// 创建连接智能指针"ADODB.Connection"
hr = m_FaxDataLink.CreateInstance(__uuidof(Connection));
m_FaxDataLink -> Open(conn, "", "", -1);
// 设置连接超时
m_FaxDataLink->PutCommandTimeout(5);
}
catch (_com_error & error)
{
// 出错处理
return 0;
}
return 1;
}
这里还只是链接到了数据库,以后就可以利用这个链接,打开数据库表,还要知道包含哪些文件不要搞错,问题太多,要一个一个的提,不要在一个问题中提多个问题
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |