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

  • 相关阅读:
    Python3报错处理:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
    Python/Shell/MySQL时间获取与格式转换
    MySQL客户端不需要commit代码需要commit原因分析
    Python3多线程及线程池实现教程
    人工智能、机器学习及深度学习的区别与联系
    GitHub基本使用操作
    Python3 UNIX domain sockets使用代码实现
    Linux core dump文件生成与使用
    Linux setuid使用
    Shell脚本调试操作
  • 原文地址:https://www.cnblogs.com/shenchao/p/3289801.html
Copyright © 2011-2022 走看看