起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 211|回复: 12

【结】[请求]2个问题求助!**

[复制链接]
发表于 2009-2-18 11:00:02 | 显示全部楼层 |阅读模式
有如下代码,实现的功能为选中一条数据后点击按钮自动添加一条相似数据。
var
   lsql:string;
   qryUpdate: TQuery;
   id:string;
begin
  qryUpdate := TQuery.Create(self);
  try
    id:= IntToStr(PARAMS.TPARAMS.Create(Context).GetNewPK('XSCJGL'));
    qryUpdate.ConnectionString := 'DATABASEURL=Biz:\OPERATION\OperationDB.Database';
    lSql := 'insert into XSCJGL select '+id+' as fid,XH,XM,ZY,0-CJ as FCJ,XK,RXSJ from XSCJGL';
    qryUpdate.CommandText := lSql;
    qryUpdate.Execute;
  finally
    qryUpdate.Free;
  end;
end;
问题1:当数据集中只有一条数据时,可以生成数据,当数据集中有两条以上数据时会报“违反主键唯一性错误”,可以肯定id每次的值都不同,GetNewPK方法写在业务字典中。
问题2:每次退出时报错“对象必须在环境之前释放”,id这个对象怎么释放?
回复

使用道具 举报

发表于 2009-2-18 11:10:25 | 显示全部楼层
问题2可能是这个 PARAMS.TPARAMS.Create(Context)  搞的 你把他单独的创建释放,不要嵌套到里面。
问题1.描述不够清楚
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-18 11:20:55 | 显示全部楼层
问题1:
当执行到Execute的时候就会报错“违反primary key唯一性”,id是主键。GetNewPK是主键自增函数,GetNewPK函数肯定没有错。
回复 支持 反对

使用道具 举报

发表于 2009-2-18 11:52:44 | 显示全部楼层
你做一个简单点的例子,把资源发上来吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-18 13:02:06 | 显示全部楼层
算了。结贴吧!
回复 支持 反对

使用道具 举报

发表于 2009-2-18 13:06:53 | 显示全部楼层
难道楼主不想搞明白为什么吗?怎么结贴了?我觉得你说的挺奇怪的,发个资源我重现一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-18 14:01:31 | 显示全部楼层
好,主要是挺麻烦说不清楚。

运行的时候提示我违反“主键唯一性”
回复 支持 反对

使用道具 举报

发表于 2009-2-18 14:18:01 | 显示全部楼层
把这个例子资源导出来,如果大于2m,切成2个包。发上来我试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-18 14:35:15 | 显示全部楼层
============

ds.part1.rar

1.43 MB, 下载次数: 44

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-18 14:42:17 | 显示全部楼层
===========

ds.part2.rar

976.43 KB, 下载次数: 43

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-27 18:09 , Processed in 0.045338 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表