关于保存记录
我设计一个程序遇到这样的问题:
打开一个表,输入数据。当正在输入数据时,突然间死机或断电,刚才输入的记录都没有保存到表里。
我想如何实现输入一条记录或几条记录后按保存按钮就可以把新输入的记录保存到表里。如何实现这个功能???
问题点数:60、回复次数:5Top
1 楼apple_8180(十豆三)回复于 2004-09-04 15:52:45 得分 10
你可以用一个临时库来转数据用:
比如:表1为记录表,表2为临时表。
把Grid与表2进行关联,当在输入完毕一条记录后,就把最新记录(也就是最后输入的记录)
加到表1里,这样,既使断电,也只会丢一条记录。Top
2 楼JohnShen(因果网)回复于 2004-09-04 16:13:33 得分 15
在保存按钮里执行
Flush
命令,可以确保你的所有修改被保存到磁盘,这样掉电也没有关系。
FLUSH ensures that modifications you make to all open tables and indexes are saved to disk.
Top
3 楼apple_8180(十豆三)回复于 2004-09-04 17:06:33 得分 20
JohnShen(因果网) 师兄的方法很好:详解如下
FLUSH
(将对表和索引所作的修改存入磁盘。)
备注
FLUSH 命令确保对所有打开表和索引的修改都存入磁盘。
在下列情况下,Visual FoxPro 自动保存所做修改:
用 USE、CLOSE ALL 或 CLOSE DATABASES 命令关闭表。只有被关闭文件的有关信息存入磁盘。
对记录或文件解锁。只有被解锁记录或文件的信息存入磁盘。Top
4 楼dfwxj(清风)回复于 2004-09-05 00:47:54 得分 5
没错,
FLUSHTop
5 楼qufusongyu(元秋)回复于 2004-09-05 23:55:37 得分 10
在这种事务型的操作中,为什么不加入事务?
BEGIN TRANSACTION
if ll保存
do while TXNLEVEL()>0
End TRANSACTION
enddo
else
do while TXNLEVEL()>0
Rollback
enddo
endif
Top




