VC编程之读写SQL Server的binary类型(VC/MFC)
小标 2019-04-02 来源 : 阅读 1259 评论 0

摘要:本文主要向大家介绍了VC编程之读写SQL Server的binary类型(VC/MFC),通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

本文主要向大家介绍了VC编程之读写SQL Server的binary类型(VC/MFC),通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

VC编程之读写SQL Server的binary类型(VC/MFC)

  示例代码如下,其中CMSSADO为walker简单封装的类,不必关心,重点在代码中标注关键代码部分。为了减少代码,突出重点,代码中没有加入异常处理。walker的编译环境为win7 x64下vs2010,数据库为sql server 2008 R2。

//初始化ADO环境
AfxOleInit();
CMSSADO mss_ado;
CString str;
CString conn_str = _T("Provider=SQLOLEDB;");
conn_str += _T("SERVER=127.0.0.1;");
conn_str += _T("DATABASE=walker_test;");
conn_str += _T("UID=sa;");
conn_str += _T("PWD=xxxxxxx;");
mss_ado.OpenConnection(conn_str);
ADODB::_ConnectionPtr conn = mss_ado.GetConnectionPtr();
CString sql = _T("INSERT INTO IPTbl(UserIP) VALUES(0x11223344)");   //插入
conn->Execute((_bstr_t)sql, NULL, ADODB::adCmdText);
sql = _T("SELECT TOP 1 [UserID], [UserIP] FROM IPTbl"); //读取
ADODB::_RecordsetPtr rs = NULL;
mss_ado.OpenRecordset(sql);
rs = mss_ado.GetRecordsetPtr();
CString UserID = _T(""),
        UserIP = _T("");
if (!rs->adoEOF)
{
    _variant_t vUserID = rs->GetCollect("UserID");
    _variant_t vUserIP = rs->GetCollect("UserIP");
    UserID = (TCHAR*)(_bstr_t)(vUserID);
    ///// begin 关键代码 /////
    char *pBuf = NULL;
    char bytmp[4];
    memset(bytmp, 0, sizeof(bytmp));
    SafeArrayAccessData(vUserIP.parray, (void **)&pBuf);
    if (pBuf != NULL)
    {
        memcpy(bytmp, pBuf, sizeof(bytmp));
    }
    SafeArrayUnaccessData (vUserIP.parray);
                       
    wchar_t wc;
    CString s;
    for(int i=0; i<4; i++)
    {
        //因为是unicode环境,需要转换char为wchar_t
        mbtowc(&wc, (char *)&bytmp[i], MB_LEN_MAX);
        s.Format(_T("%X"), wc);
        UserIP += s;
    }
    ///// end 关键代码 /////
    AfxMessageBox(_T("UserIP: ") + UserIP);
}
sql = _T("UPDATE IPTbl SET UserIP=0x") + UserIP + _T(" WHERE UserID=") + UserID;    //修改
conn->Execute((_bstr_t)sql, NULL, ADODB::adCmdText);
//关闭ado环境
AfxOleTerm();
AfxMessageBox(_T("OK"));


*** walker ***


以上就介绍了VC/MFC的学习,希望对VC/MFC有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言VC/MFC频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程