编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
发新话题
打印

求教一个删除的问题

求教一个删除的问题

我的报表新争一个“序号”字段,每增加一个记录就增加一个序号
在添加按钮里增加一个语句“repl 序号 with recc()”来达到自动增加的效果
但我的删除按钮是直接用DELETE语句进行逻辑删除,然后用SET DELETE ON 隐藏,最后退出时用PACK物理删除
于是,“序号”和删除就发生了冲突
实验如下:
把表内容全部清空,重新记录内容,输入第一条内容,序号为1,用DELETE删除,看上去是被删除了,但让我发现了两个问题,即使这种形式上被删除的内容,当时实际还是存在的,这样,我判断“编号”是否已经存在的语句执行了,提示“货物编号”已经存在,再者,“序号”字段继续递加变成了2

我想到的解决办法是
1.把逻辑删除直接变成物理删除,但又会有新问题,删除后表格的内容变空白了,而这个“空白”只不过没有被显示出来,并不是将表格里的数据源释放
2.增加一个判断语句,判断输入的编号是否处于逻辑删除状态,但我不会语句。。。也不知道有没有这样的语句

TOP

呵呵,如果用记录号来作为编号,那你这个叫“编号”的字段就是多余的。如果您用的是VFP8.0以上版本,可将“编号”字段类型设置为自增量就护定了,如果是6.0版本,最好编一段代码来自动设置编号。
思路如下:
如果表中没有记录,在第一个记录设置编号为“0001”等你所要的第一个编号。如果已经有记录,则把“编号”按升序排序到一个数组或临时表,取其最后一个,然后加1(字符型的要转换为数值型再运算),然后再根据所定编号长度增加前置“0”.
具体的您可自己写一下。
学无止境 http://bbs.zc268.com

TOP

某记录是否已经逻辑删除,可用Delet()函数检查。

[ 本帖最后由 啸凡 于 2008-6-10 20:34 编辑 ]
学无止境 http://bbs.zc268.com

TOP

发新话题