找回密码
 加入
搜索
查看: 3023|回复: 7

[系统综合] 求助数据库概念 如何预防 程序当机与网络中断 造成的数据出问题??

    [复制链接]
发表于 2017-9-13 17:43:27 | 显示全部楼层 |阅读模式
求助数据库概念 如何预防 程序当机与网络中断 造成的数据出问题??

不知道这边是否刚好有写ERP 或者 正航的人员

想套论个问题  假设一张单据 牵扯 五个表  当我新增 单据的时候 必须要要依序 写入五个表  可是这时候 如果计算机 当机 或者网络中断  就会造成 其中 某一个两个表没有写入资料……..

如何预防这种问题…..

以 正航ERP 系统来说  如果发这这样的情况  下次他再进入时  即可发现刚刚那张单据并没有存盘 提醒使用这再重新 存盘一次 ,这样是如何办到的

各位高手又是如何应付这样的情况呢??
发表于 2017-9-14 14:23:25 | 显示全部楼层
网络传输正在努力学习中,是否可以通过这样的思路实现:
;一                保存数据的时候的相关操作

Func _save();保存数据
        ;1        设置一个配置文件,记录当前的保存状态。                1        代表正在保存,                0        代表保存完成
        Local $file = FileOpen('配置文件.txt',2)
        FileWrite($file,1);正在保存数据
        FileClose($file)
        
        ;2        进行数据保存的相关操作
        
        ;3        数据保存完成后
        Local $file = FileOpen('配置文件.txt',2)
        FileWrite($file,0);数据保存完成
        FileClose($file)        
EndFunc



;二                程序下次启动的时候的相关操作

        Local $file = FileOpen('配置文件.txt',0)
        Local $read = FileRead($file);正在保存数据
        FileClose($file)
        If $read = 0 Then
                MsgBox(0,'正常启动','之前程序正常保存数据')
        ElseIf $read = 1 Then
                MsgBox(0,'异常','之前程序保存数据异常')
        EndIf
        
 楼主| 发表于 2017-9-14 14:48:21 | 显示全部楼层
本帖最后由 kk_lee69 于 2017-9-14 14:51 编辑

回复 2# fenhanxue

假設 程式 跑到 第九行中間的時候 異常跳出  

這樣一來 資料還是亂的!!
发表于 2017-9-14 15:58:45 | 显示全部楼层
;一                保存数据的时候的相关操作

Func _save();保存数据
        ;1        设置一个配置文件,记录当前的保存状态。                非0        代表正在保存,                0        代表保存完成
       _write_file('配置文件',1)
        
        ;2        进行数据保存的相关操作(假设分解为9个动作)
                        For $i = 1 To 9
                                _write_file('配置文件','1-'&$i)
                                ;正在保存第$i个数据  并进行相关操作
                        Next
                        
                                                
        ;3        数据保存完成后
        _write_file('配置文件',0)     
EndFunc



;二                程序下次启动的时候的相关操作

        Local $file = FileOpen('配置文件.txt',0)
        Local $read = FileRead($file);正在保存数据
        FileClose($file)
        If $read = 0 Then
                MsgBox(0,'正常启动','之前程序正常保存数据')
        Else 
                MsgBox(0,'异常','之前程序保存数据异常')
        EndIf
        
                

Func _read_file($file)
        Local $f = FileOpen($file,0)
        Local $temp = FileRead($f)
        FileClose($f)        
        Return $temp
EndFunc
Func _write_file($file,$x)
        Local $f = FileOpen($file,2)
        FileWrite($f,$x)
        FileClose($f)
EndFunc
我基础差,只能想到这样操作
发表于 2017-9-14 16:56:29 | 显示全部楼层
我个人思路是,当程序点击 save 的时候 表单数据进行本地保存临时文件,再向数据库写入。
 楼主| 发表于 2017-9-14 16:56:58 | 显示全部楼层
回复 4# fenhanxue

感謝回復

這個方法 等同自己寫 LOG 把每個步驟做到哪  都記錄下來

概念基本上是ok 的  只是 實現上不是哪麼容易  我比較想了解 資料庫的安全機制 之類的

看看是否 有比較是屬於資料庫安全機制上的方法
发表于 2017-9-14 22:13:07 | 显示全部楼层
还不如买书看更快
 楼主| 发表于 2017-9-14 22:30:30 | 显示全部楼层
回复 7# ila

可惜就是不知道買哪方便的書 有提到這個

這個比較關乎實務 而不是理論
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-21 17:46 , Processed in 0.074943 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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