zoukankan      html  css  js  c++  java
  • C++:SQLServer字段赋值

    大前提:

    1、 初始化环境

    2、 创建连接实例

    3、 创建记录集实例

    注意点:

    1、AddNews失败问题:

    (1)是否将CursorTypeEnum cursorType, LockTypeEnum lockType 两值分别设为 adOpenDynamic, adLockOptimistic等可添加、删除值属性。

    (2)记录集是否打开。

    (3)最后Update();

    2、设置字段值错误:

    (1)赋值超过其值范围

    (2)将CursorTypeEnum cursorType, LockTypeEnum lockType 两值分别设为 adOpenDynamic, adLockOptimistic时,以下方法都能将字段值设置成功:

     

    vtFld = m_pRecordset->GetCollect(lpFieldName);   

    m_pRecordset->PutCollect(vtIndex, vtFld);

     

    HRESULT hr = m_pRecordset->get_Collect(vtIndex,&vtFld);

          if (FAILED(hr))

          {

              return false;

          }

    HRESULT hr = m_pRecordset->put_Collect(vtIndex, var);

          if (SUCCEEDED(hr))

          {

              return true;

          }

     

    vtFld = m_pRecordset->Fields->GetItem(vtIndex)->GetValue();

    m_pRecordset->Fields->GetItem(vtIndex)->PutValue(var);       

     

    HRESULT hr = m_pRecordset->Fields->GetItem(vtIndex)->get_Value(&vtFld);

          if (FAILED(hr))

          {

              return false;

          }

    HRESULT hr = m_pRecordset->Fields->GetItem(vtIndex)->put_Value(vtFld);       

          if (SUCCEEDED(hr))

          {

              return true;

          }

     

    vtFld = m_pRecordset->Fields->GetItem(vtIndex)->Value;

    m_pRecordset->Fields->GetItem(lpFieldName)->Value = var;     

     

             备注:当CursorTypeEnum cursorType, LockTypeEnum lockType 的值分别设置为:adOpenUnspecified , adLockUnspecified时,put_Value可以设置值成功,其他的如PutValue、Value都设置值失败,另外AddNew会出错。这就是将它们全部测试一遍的原因。测试中发现PutValue是put_Value 的进一步封装,这与前者矛盾。不管怎样,遇到离奇的错误,可能是我们某一个属性值设置的不一样 。。。

  • 相关阅读:
    详解Codis安装与部署
    停车场地图开发
    dlib换脸
    海康相机官网硬触发设置
    python操作数据库
    心率和血氧测量
    音乐模块
    flask网页显示图片
    树莓派识别二维码
    树莓派python获取自身IP
  • 原文地址:https://www.cnblogs.com/shenchao/p/3289801.html
Copyright © 2011-2022 走看看