大前提:

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

C++:SQLServer字段赋值的更多相关文章

  1. 如何解决CRUD操作中与业务无关的字段赋值

    提高效率一直是个永恒的话题,编程中有一项也是可以提到效率的,那就是专注做一件事情,让其它没有强紧密联系的与之分开.这里分享下我们做CRUD时遇到的常见数据处理场景: 数据库表字段全部设计为非空,即使这 ...

  2. 【.Net底层剖析】2.stfld指令-给对象的字段赋值

    .Net底层剖析目录章节 1.[深入浅出.Net IL]1.一个For循环引发的IL 2.[.Net底层剖析]2.stfld指令-给对象的字段赋值 3.[.Net底层剖析]3.用IL来理解属性 引言: ...

  3. C# 类构造函数赋值里属性与字段赋值注意项

    public class Test { public Test(int age) { this.Age=age;//如果这里使用的是this.age=age;那么属性里的判断将不会执行 } priva ...

  4. openEntityForm时候如何给关于(regardingobjectid)类型查找字段赋值?

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复264或者20170924可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  5. oracle赋值问题(将同一表中某一字段赋值给另外一个字段的语句)

    将同一表中某一字段赋值给另外一个字段的语句update jxc_ckmx ckmx1 set ckmx1.ddsl = (select ckmx2.sl from jxc_ckmx ckmx2 whe ...

  6. openEntityForm如何给关于(regardingobjectid)类型查找字段赋值?

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复264或者20170924可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  7. java使用反射强制给private字段赋值

    今天项目中遇到了一个问题,要调用一个类,并获取这个类的属性进行赋值然后将这个类传递到方法中做为参数. 实际操作时才发现,这个类中的字段属性是私有的,不能进行赋值!没有提供公有的方法.而这个类又是打包成 ...

  8. 在PowerDesigner中自动生成sqlserver字段备注

    在PowerDesigner中自动生成sqlserver字段备注 PowerDesigner是数据库设计人员常用的设计工具,但其自生默认生成的代码并不会生成sqlserver数据库的字段备注说明.在生 ...

  9. SqlServer字段说明查询及快速查看表结构

    SqlServer字段说明查询 SELECT t.[name] AS 表名,c.[name] AS 字段名,cast(ep.[value] )) AS [字段说明] FROM sys.tables A ...

随机推荐

  1. How to put a relative path for a DLL statically loaded?

    How to put a relative path for a DLL statically loaded? I have a DLL made in Delphi 7/Windows XP tha ...

  2. PHP中getenv()和$_SERVER的区别

    PHP中getenv()和$_SERVER的用法区别: getenv 取得系统的环境变量,环境变量的格式为name=value. 语法: string getenv(string varname); ...

  3. animate()--jq动画

    2参数,样式,时间 $(this).animate({top:"100px","opacity": "0"},1000) 3参数,样式,时间 ...

  4. 单击行,自己主动选中当前行中的单选框button

    需求:单击行,自己主动选中当前行中的单选框button. aspx页面: <asp:Repeater ID="rptRecordList" runat="serve ...

  5. 图像处理标准图像lena的故事图The Lenna Story behind image processing

    The Lenna Story - www.lenna.org   Imaging Experts Meet Lenna in Person Yes, it's true! Lenna attende ...

  6. 策略模式Strategy——回家乘什么车?

    1.问题与模式 时间:2014年6月       学校:廊坊师范        家:石家庄       人物:学生 又快到期末考试了,回家的节奏也奔上日程.无聊之余就想想这次回家的事儿.对我来说回家主 ...

  7. T-sql 根据bak文件恢复新建数据库

    利用bak文件恢复新建数据库: 1:利用sqlserver界面管理工具恢复,在操作2005以上的版本可以讲界面的操作过程生成sql语句(本人在此徘徊了好久,得一位博友提醒才恍然大悟); 2:利用sql ...

  8. 这两天对OKR简单总结

    依据两天的学习对OKR进行一个总结. 1.OKR的本质是目标管理. 公司制定公司的战略目标,须要全体员工都可以聚焦到这个目标上来而且形成最大的合力. 公司制定公司层面的OKR.然后员工依据公司的目标. ...

  9. (剑指Offer)面试题47:不用加减乘除做加法

    题目: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 思路: 很容易想到通过位运算来解决问题. 以5+17=22为例,参考十进制加法:1.只做各位相加不进位运算,即得 ...

  10. (剑指Offer)面试题40:数组中只出现一次的数字

    题目: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 思路: 这道题的简单版本是除了一个数字之外,其他数字都出现了两次,这个很简单,将所有的数异或一遍就 ...