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 的进一步封装,这与前者矛盾。不管怎样,遇到离奇的错误,可能是我们某一个属性值设置的不一样 。。。

  • 相关阅读:
    Hiveserver2高可用实现
    centos7 mysql数据库安装和配置
    ubuntu18.04 安装hadoop 2.7.3+hive 2.3.4
    imx6 RGB LCD
    imx6 KEY_ROW4 power output high fail
    ar1020 驱动移植 无效
    24C02 Twr
    undefined reference to `switch_dev_unregister'
    cannot open /proc/bus/usb/devices, No such file or directory
    imx6dl i2c4 support
  • 原文地址:https://www.cnblogs.com/shenchao/p/3289801.html
Copyright © 2011-2022 走看看