中易网

c++如何能直接使用SQL语句

答案:3  悬赏:30  
解决时间 2021-02-22 12:54
能不能不用mysql_query之等"mysql.h"里面的函数啊
最佳答案
1.C++连接SQL数据库第二步 C++与SQL连接初始化
在你所建立的C++项目中的stdafx.h头文件中引入ADO
具体代码如下
#import “c:\Program Files\Common Files\System\ado\msado15.dll”
no_namespace rename(”EOF”, “adoEOF”) rename(”BOF”, “adoBOF”)
2.定义_ConnectionPtr变量后调用Connection对象的Open方法建立与服务器的连接。
数据类型_ConnectionPtr实际上是由类模板_com_ptr_t得到的一个具体的实例类。_ConnectionPtr类封装了Connection对象的Idispatch接口指针及其一些必要的操作。可以通过这个指针操纵Connection对象。
例如连接SQLServer数据库,代码如下:
//连接到MS SQL Server
//初始化指针
_ConnectionPtr pMyConnect = NULL;
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
return;
//初始化链接参数
_bstr_t strConnect = “Provider=SQLOLEDB;
Server=hch;
Database=mytest;
uid=sa; pwd=sa;”; //Database指你系统中的数据库
//执行连接
try
{
// Open方法连接字串必须四BSTR或者_bstr_t类型
pMyConnect->Open(strConnect, “”, “”, NULL);
}
catch(_com_error &e)
{
MessageBox(e.Description(), “警告”, MB_OK|MB_ICONINFORMATION);
}//发生链接错误
3.
//定义_RecordsetPtr变量,调用它Recordset对象的Open,即可打开一个数据集
//初始化过程 以下是个实例
_RecordsetPtr pRecordset;
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
return;
}
//执行操作
try
{
pRecordset->Open(_variant_t(”userinfo”),
_variant_t((IDispatch*)pMyConnect),
adOpenKeyset, adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
MessageBox(”无法打开userinfo表\”, “系统提示”,
MB_OK|MB_ICONINFORMATION);
}
4.
这里是关键,我认为只要你懂点SQL语句那么一切都会方便许多比用上面的方法简单,更有效率点。
首先
m_pConnection.CreateInstance(_uuidof(Connection));
//初始化Connection指针
m_pRecordset.CreateInstance(__uuidof(Recordset));
//初始化Recordset指针
CString strSql=”select * from tb_goods”;//具体执行的SQL语句
m_pRecordset=m_pConnection->Execute(_bstr_t(strSql),
NULL, adCmdText);//将查询数据导入m_pRecordset数据容器
至此 你的SQL语句已经执行完成了m_pRecordset内的数据就是你执行的结果。
取得记录:
while(!m_pRecordset->adoEOF)//遍历并读取name列的记录并输出
{
CString temp = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem
(”name”)->Value;
AfxMessageBox(temp);
pRecordset->MoveNext();
}
全部回答
在sql语句前添加:exec sql。如EXEC SQL insert into aaa values(bbb) ;
在sql语句前添加:exec sql。如EXEC SQL insert into aaa values(bbb) ;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我想给妹妹买个耳钉,价格在200-500之间的。
南海区里水怡华食品公司在哪里啊,我有事要去
根据材料二运用文化生活知识说明我国为什么要
什么是“两床被子、十件衣服”?
法拉利和保时捷的弯道差距大吗
瑞安前洋村属于哪个街道
菡美国际美容连锁机构(康馨花园店)在什么地方
快乐签单模式是谁创立的?
爱月宝的月嫂比别的家政价高一些,有用过的吗
土湾街道地址有知道的么?有点事想过去
下巴外翘如何手术
我是上海手机号码,如果打电话到新加坡多少钱
活海参怎么处理便于携带
女娲娘娘的寿诞之日是三月十五吗?
信安菜馆在什么地方啊,我要过去处理事情
推荐资讯
聚贤德狗肉城在哪里啊,我有事要去这个地方
电脑系统文件丢失 怎样用光盘组装
房产证上面,产权来源是自健,属于商品房吗?
众人意快餐这个地址在什么地方,我要处理点事
俄罗斯为什么既没有加入欧盟也没有加入申根区
衣服越穿越大怎么办啊 急
现在打混凝土工人多少钱一个小时!!!!
谁还不会“百度”这篇文章第一自然段交代了什
出汗多了被风吹感冒了,是不是风热感
梓树尖怎么去啊,有知道地址的么
有没有炒干货内行人告诉一下炒干货店到底赚钱
有没有人帮我开空间的QQ餐厅.. 有的话. 我送3
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?