VC中使用ADO操作数据库(Insert)

本文介绍了一个使用C++进行数据库操作的例子,具体展示了如何通过COM接口向数据库中添加书籍笔记信息,包括注释代码以解释每一步操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.sina.com.cn/s/blog_6d0730c70100uhp1.html

bool CBookDb::AddBookNote(const BookNoteInfo& note)
{
    try
    {  
        m_pRecordset->Open(_T("select * from BookNotes"),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);  

        m_pRecordset->AddNew();//添加一条新纪录

        if(note.m_strId.IsEmpty())
            return false;

        m_pRecordset->PutCollect(_T("Id"), _variant_t(note.m_strId));
        m_pRecordset->PutCollect(_T("BookPath"), _variant_t(note.m_strBookPath));
        m_pRecordset->PutCollect(_T("OriginalText"), _variant_t(note.m_strOriginalText));
        m_pRecordset->PutCollect(_T("BeginOffset"), _variant_t(note.m_nBeginOffset));
        m_pRecordset->PutCollect(_T("EndOffset"), _variant_t(note.m_nEndOffset));
        m_pRecordset->PutCollect(_T("NoteText"), _variant_t(note.m_strNoteText));

        m_pRecordset->Update();//不要漏掉,否则下面的close会出现 UNKNOWN ERROR 0X800A0E79
    }
    catch (_com_error e)
    {
        AfxMessageBox(e.ErrorMessage());
        m_pRecordset->CancelUpdate(); //不要漏掉 :)
        CString strInfo;
        strInfo.Format(_T("AddNewBookDetails出错errormessage=%s decription=%s"), e.ErrorMessage(), e.Description());
        LogFile::WriteLine(strInfo);
        m_pRecordset->Close();
        return false;
    }

    //m_pRecordset->Close();
    return true;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值