如何找出一个数据窗口中的重复的纪录 急 在线等

soldiera 2002-12-19 12:35:56
如何找出一个数据窗口中的重复的纪录 每条记录是由两个关键字决定的
请给一个详细的解答,谢谢!
...全文
54 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdqy 2002-12-24
  • 打赏
  • 举报
回复
如果你的数据库是oracle可用如下办法:

select rowid,bm,mc from a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);
JIANXIN_LU 2002-12-21
  • 打赏
  • 举报
回复
方法一:根据主键或索引唯一的办法,让数据库来检查。
方法二:先根据连个关键烈进行排序,让上一行与下一行进行比较,既可找出是否重复,本方法的代码如下(仅供参考):
Long llRow
String lsValue1, lsValue2, lsNextValue1, lsNextValue2

IF Dw_1.AcceptText( ) = -1 THEN RETURN -1
FOR llRow = 1 TO Dw_1.RowCount( ) - 1
lsValue1 = Dw_1.GetItemString( llRow, "Column1" )
lsValue2 = Dw_1.GetItemString( llRow, "Column2" )
lsNextValue1 = Dw_1.GetItemString( llRow + 1, "Column1" )
lsNextValue2 = Dw_1.GetItemString( llRow + 1, "Column2" )
IF lsValue1 = lsNextValue1 AND lsValue2 = lsNextValue2 THEN
MessageBox( "提示", "记录重复!" )
RETURN 0
END IF
NEXT
th820901 2002-12-21
  • 打赏
  • 举报
回复
贴出你的你的代码,要不要休息了!
soldiera 2002-12-21
  • 打赏
  • 举报
回复
我需要录入的纪录有一个是来自下拉框中的 是用户选择的 用 JIANXIN_LU(大侠)的程序 发现若第一行和第二行重复纪录则无法找到 求救 我的代码是写在itemchanged 中的 出了什么毛病呀 在线等
soldiera 2002-12-20
  • 打赏
  • 举报
回复
我的意思是在录入数据窗口中可能有重复数据 如何在确认时找出重复纪录给予提示
愉快的登山者 2002-12-19
  • 打赏
  • 举报
回复
select k_item1, k_item2 from
(select count(*) rows, k_item1, k_item2
from tablename group by k_item1, k_item2) as A
where A.rows > 1
jeking 2002-12-19
  • 打赏
  • 举报
回复
string ls_pk1,ls_pk2
long ll_nbr, ll_foundrow
ll_nbr = dw_1.RowCount()
// Remove leading and trailing blanks.
ll_foundrow = dw_1.Find("pk1 = '" + ls_pk1 + "' and pk2 =" + '" + ls_pk2 + "'" , 1, ll_nbr)
szpqq 2002-12-19
  • 打赏
  • 举报
回复
上面的想法不错
pbdesigner 2002-12-19
  • 打赏
  • 举报
回复
步骤:
1.保存原有的排序表达式
2.对数据窗口进行重新排序(用两个关键字,实际上可以是任何能决定重复的字段,设为col1和col2)
3.创建计算列repeat_tag,表达式为col1[0] = col1[-1] and col2[0] = col2[-1]
4.循环抓取repeat_tag='true'的行,即重复行
5.删除计算列repeat_tag
6.重设原来的排序规则

注意使用setredraw(false)和setredraw(true)。本算法只用一层循环
dingzhaofeng 2002-12-19
  • 打赏
  • 举报
回复
既然有主键限定,难道还有重复值?
qinqindodo 2002-12-19
  • 打赏
  • 举报
回复
我的天!如果要查我只能用两层循环找了!
dw_1.accepttext()
for ll_item = 1 to dw_1.rowcount() -1
ls_id1 = dw_1.object.id1[ll_item]
ls_id2 = dw_1.object.id2[ll_item]
for ll_find = ll_item + 1 to dw_1.rowcount()
if ls_id1 = dw_1.object.id1[ll_find ] and ls_id2 = dw_1.object.id2[ll_find ] then
dw_1.selectrow(0,false)
dw_1.selectrow(ll_item,true)
dw_1.selectrow(ll_find ,true)
dw_1.scrolltorow(ll_item)
return
end
next
next
不过这样效率奇低,如果你只是要保证修改后的数据窗口不含重复主健的话
在itemchanged时在accepttext()之前find一下你输入的值比较好吧!

chengjian 2002-12-19
  • 打赏
  • 举报
回复
这样的值在表中怎么会有?
表没有主键么?
5月1日凌晨发布第一测试版 功能介绍: 1.生成英文数字混合的字符串的字模数据. 2.可选择字体,大小,并且可独立调整文字的长和宽,生成任意形状的字符。 3.各种旋转,翻转文字功能 4.任意调整输出点阵大小,并任意调整字符在点阵的位置。 5.字模数据输出可自定义各种格式,系统预设了C语言和汇编语言两种格式,并且可自己 定义出新的数据输出格式;每行输出数据个数可调。 6.支持四种取模方式:逐行(就是横向逐行取点),逐列(纵向逐列取点),行列(先 横向取第一行的8个点作为第一个字节,然后纵向取第二行的8个点作为第二个字节……), 列行(先纵向取第一列的前8个点作为第一个字节,然后横向取第二列的前8个点作为第二个 字节……) 7.支持阴码(亮点为1),阳码(亮点为0)取模 8.支持纵向(第一位为低位)(,倒向第一位为高位)取模 9.输出数制可选16进制或10进制 10.可生成索引文件,用于在生成的大量字库可快速检索到需要的汉字 11.动态液晶面板彷真,可调节彷真面板象素点大小和颜色 12.图形模式下可任意用鼠标作画,左键画图,右键擦图。 12.旋转,翻转,平移等字符模式下的功能也可用与对BMP图象的处理 版本为pctolcd1.94 5月1日晚上发布第二测试版 更新如下: 1.增加锁定点阵大小功能,例如可锁定24X24点阵大小,然后调节独立调节字点阵的大小 2.增加热键功能,可用光标配合Ctrl,Shift对文字大小和位置修改 3.增加精简输出格式选项 4.把文字输入框换成了文字输入组合框,这样就可以保存历史纪录。 5.输出数据会自动清除以前的数据 6.可隐藏自定义格式,简化操作 7.一些小的BUG修正。 版本为pctolcd2.03 5月3日凌晨发布第三测试版 更新如下: 1.增加了一些小东西,例如演示动画一类的,我懒的一一写了 2.改掉一些可恶的小BUG,例如点阵输入框的自动完成。 3.增加大量文字处理和导入TXT文本文件功能,并且可以去除文本的空白和重复字符, 可以对文本进行排序,适合于生成小字库。我这里测试是3万多字的TXT文件在2分钟内转成16X16点阵的字库文件。 版本号为pctolcd2.53 由于本软件侧重于对字符的处理,所以在图象方面功能较弱,请见晾。 5月8日发布正式版 正式版已经开始朝着液晶字库生成软件的方向进化了,我在后来的更新把主要精力也放 在这部分,由于我目前还没有发现有同类的软件具备这个功能,也无法得到任何的参考,只能 自己摸索前进,所以如果还有不方便的地方请大家多提意见. 具体更新如下: 1.重写大部分的内核代码以配合汉字库生成的功能,目前这个内核已经进行了反复的测试, 相信稳定性和速度较前一版本有了巨大的提高. 2.去掉那个比较愚蠢的热键区了,因为用处不大 3.增加汉字库生成功能,这是最重要的改进之处,下文将详细介绍. 4.修正许多小BUG,使软件更加成熟些. 5月12日发布完美版 这次发布的PCtoLCD2002完美版与前一版本相比没有增加太多的功能,因为我觉得现有的这些功能已经足够用于生成各种字模的需要了,所以完美版的主要工作是反复测试,精心去除各种BUG,以及调节一些细微之处,目的当然就是追求完美!不过世上不会有真正完美的东西,这个软件也不例外,而且这个软件从头至尾全部是我一个人编写完成,精力有限,难免会顾此失彼,如果大家发现了这个版本存在的BUG,请及时告诉我。 更新说明: 1。界面采用新的字体,不会再有那种难看的黑色粗体字,比以前的要漂亮多了。 2。加入全面的提示帮助,尽量减少普通用户的各种疑惑。 3。修正生成文件的扩展名的一些BUG,不会总是加上FON的扩展名了。 4。修正生成字模数据的一些格式BUG,现在生成的C51格式字模数据基本上可以直接粘贴到源程序使用而不需要修改了 5。加入新的字模数据格式调整项,允许用户更自由的定制自己需要的数据格式 6。最重要的更新:全面支持保存当前设置功能,用户设置的字模格式,主窗口状态和字库生成窗口选项信息均可保存,下一次打开窗口时不用重新设置。 7。修正了新建图象时会自动跳到图形模式的BUG 8。增加输出紧凑格式数据选项,可以生成不包含空白行的字模数据。 9。完善了每行数据显示个数的功能,可以任意设置每行显示的数据个数,并同时可以设置每行索引数据显示个数。 10。修正了取模说明的一些错误,并改动了格式。 11。现在当用户选择10进制输出时,会自动去掉生成字模数据前的“0x",或后面的“H”,选择

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧