Oracle 复制一条 改主键,在一个表中复制一条同样的记录到同一个表中,只修改主键内容(200分)...
摘自:HUBDOG大虾的葵花宝典
通常,你完成此项任务时使用 TBatchMove 构件。但 TBatchMove 也有不合适的情况:
- 你并不希望拷贝所有的记录,也不想使用过滤器。
- 你希望用到目的 DataSet 的有效事件(如 BeforPost,OnValidate,等)。
- 或者更坏的情况,两 DataSet 的结构并不相同。
使用下面的简单过程,上面的问题都可以被解决,所有字段中的数据将被拷贝到另外一个 Dataset 中的同名字段中。但这里面也存在一些限制:
- 不能拷贝查找和计算字段
- 当存在相同字段名但数据类型不同时,你需要先使用 Assign 判断。
- 当然,目的字段不能是只读的。
procedure CopyRecord(Source, Destination: TDataSet);
var Ind:longint;
SField, DField: TField;
begin
for Ind:=0 to Source.FieldCount - 1 do
begin
SField := Source.Fields[ Ind ];
DField := Destination.FindField( SField.FieldName );
if (DField <> nil) and (DField.FieldKind = fkData) and
not DField.ReadOnly then
if (SField.DataType = ftString) or
(SField.DataType <> DField.DataType) then
DField.AsString := SField.AsString
else
DField.Assign( SField )
end;
end;
旧方法:
DEST.Open;
ORIGIN.Open;
while not ORIGIN.Eof do
begin
if ORIGINTYPE.AsString = 'T' then
with ORIGIN do
begin
DEST.Append;
DEST.FieldByName('TYPE').AsString := ORIGINTYPE.AsString;
DEST.FieldByName('FIRSTNAME').AsString := ORIGINFIRSTNAME.AsString;
DEST.FieldByName('LASTNAME').AsString := ORIGINLASTNAME.AsString;
DEST.FieldByName('CPF').AsString := ORIGINCPF.AsString;
DEST.FieldByName('PARTY').AsString := ORIGINPARTY.AsString;
DEST.Post;
end;
ORIGIN.Next;
end;
使用该过程的调用示范:
DEST.Open;
ORIGIN.Open;
while not ORIGIN.Eof do begin
if ORIGINTYPE.AsString = 'T' then begin
DEST.Append;
CopyRecord( ORIGIN, DEST );
DEST.Post;
end;
ORIGIN.Next;
end;
Oracle 复制一条 改主键,在一个表中复制一条同样的记录到同一个表中,只修改主键内容(200分)...相关推荐
- oracle查询结果插入新表,如何将查询出来的数据记录插入新表??
有两个表 一个是我的查询表dw_score 一个是我将查询出来的结果插入的新表dw_ribao_zeng 通过dw_score查询出来的结果要插入到dw_ribao_zeng表 这是我的一个查询语句 ...
- python字典改键_python修改字典键(key)的方法
python字典中,值可任意更改:但键是唯一的,不支持直接修改.若真的需要修改字典中的键,可通过几种间接方式实现. 新建空白字典. info = {} 给字典添加键-值对. info["x& ...
- 顺序表-删除所有元素值为x结点(另建表存放+复制到原表)
顺序表的存储结构: typedef struct{int data[Maxsize]; //存在顺序表中的元素int length; //存放顺序表的长度}SqList; 分析: 这里要删除顺序表的所 ...
- python修改key名_python修改字典键(key)的方法
python字典中,值可任意更改:但键是唯一的,不支持直接修改.若真的需要修改字典中的键,可通过几种间接方式实现. 新建空白字典. info = {} 给字典添加键-值对. info["x& ...
- oracle change schema,使用pt-online-schema-change修改主键时注意
使用 pt-online-schema-change 做在线ddl最添加普通索引.列,修改列类型.添加默认值等使用比较常规,但涉及到要修改的是主键时就有点棘手.在我修改线上实例过程中,有这样的需求,不 ...
- Oracle添加主键、删除主键、修改主键
一.前提 主键解释: 一个表的唯一关键字 比如一个学生表 学号不能重复且唯一 ,学号就是关键字,即为主键. 区别于外键: 外键就是跟其他表联系的字段 ,还是比如有一张学生表 还有一张选课表,这个时候要 ...
- Oracle 12c 能否在2小时内完成一张14亿条记录的表结构字段类型变更
原文链接:https://www.modb.pro/db/22757 概述 前面分享过Oracle大表在线修改的脚本(在线重定义),经过几轮的测试发现,都存在些缺陷,效率始终不是很满意.这次把索引和统 ...
- 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询
目录 Mybatis 复杂映射&配置文件深入 一 Mybatis高级查询 1.1 ResutlMap属性 1.2 多条件查询(三种) 1.3 模糊查询 二 Mybatis映射文件深入 2.1 ...
- MySql基础篇---003 SQL之DDL、DML、DCL使用篇:创建和管理表 ,数据处理之增删改,MySQL数据类型精讲 ,约束:联合主键
第10章_创建和管理表 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 基础知识 1.1 一条数据存储的过程 存储数据是处理数据的第一步.只有正确地 ...
最新文章
- MiniDao普通项目集成方案
- 车载信息安全企业自发成立联盟
- 用友二次开发 用友控件 Js宿主脚本 调用用友T6 登录 参照 控件示例
- 小度智能音箱维修点_会投屏电视的智能音箱——小度智能音箱PLAY青春版轻体验...
- linux 命令 find -exec 操作的问题
- Checksum 校验和
- 组装电脑多少钱一台_客户花9000元组装一台电脑,奸商赚5000块,利润真吓人
- mysql实训报告_MySQL实验报告
- tp5完全开发手册_TP5.1解决跨域
- 计算机教室维护内容,高校多媒体教室计算机维护措施
- 金蝶计算机会计实验报告总结,会计实训总结(精选5篇)
- OPNsense用户手册-用户界面
- 最难学的10大编程语言排行榜,Java只排第三,第一名出乎意料
- 金山毒霸11,更新内容,问题修复了什么?
- 手机商城系统开发流程_各系统业务逻辑关系架构图_OctShop
- Data Structures and Algorithms (English) - 6-8 Percolate Up and Down(20 分)
- 骁龙780G和骁龙888哪个好 骁龙780G和骁龙888对比,哪个更强
- 2.1.4.2 端口Banner信息获取
- Oracle增加修改删除字段
- 晶圆在低温探针台中的安装方式——Cyanoacrylate粘合剂