精易论坛

标题: 数据库SQL脚本执行工具 [打印本页]

作者: 鲁凯啸    时间: 2014-5-23 00:02
标题: 数据库SQL脚本执行工具
好吧 我又犯错了,我不应该这么认真的……
刚才租车出去了一趟,然后回来就没还,想着一会儿就可以下来还车了,
但是上楼以后,因为写一个小程序,写了个开头想着先去还了车子,
但是站起身来后突然一个灵感闪过,便继续坐回原位继续敲击键盘,
慢慢地越写越投入,把一切都抛在了脑后。
当程序完工后一看时间已经23点半多了,赶紧起身回家,
出了门看到车子还在门口停着才想起来已经租车5个小时了……那可是12元啊~







=================================================================================


软件及源码: 数据库医生.7z (267.92 KB, 下载次数: 25)
           源码及图片明天再补充~




==================================使用说明========================================

1. 生成程序可以调用的加密脚本资源: (当程式同目录下有 DXT.SQL 文件时运行程式 便是厂商模式)
1.1 将 sql脚本文件 DXT.SQL 放到程序相同目录下
   说明: 脚本文件中使用##########(大于5个#号)来使程序执行脚本命令
1.2 运行程式,如同目录下无 SQL.ini 文件
  程式会提示未配置服务器参数 并生成
  请修改其中的配置后再次运行程式
   说明: [INFO]中VAR一般设为日期型文本,INFO一般写该脚本资源的操作目的等说明
    [SQL]中为SqlSever的连接参数
1.3 运行程式后 便会将 SQL.ini 和 DXT.SQL 中的信息加密生成程式资源文件 DXT_DOC.SQL 供调用


2. 客户使用程式进行数据库检查修复操作: (当程式同目录下无 DXT.SQL 文件时运行程式 便是客户模式)
2.1 运行程式 程式将会自动读入分析同目录下的 DXT_DOC.SQL 文件并对数据库进行连接修复
2.2 当执行某段SQL脚本时出错,请记录下错误说明和code代码,其中x后的三位数表示第几段代码
2.3 请放心 执行某段代码出错后 程式将自动回滚事务,撤销操作以保证数据库的正常运行
2.4 当程式完整执行所有脚本并正确后将会在系统中记录下该次操作的识别信息,防止该资源重复调用
   (识别信息就是生成资源中 SQL.ini 文件内的 [INFO] 信息)










补充内容 (2014-5-25 09:28):
11楼:http://125.confly.eu.org/forum.php?mod= ... 426&pid=6541688
作者: 鲁凯啸    时间: 2014-5-23 00:06
本人发布的所有源码都主要是想让大家从中分析学习到一些独特的编程思路以及方法,希望大家且行且珍惜!
作者: zongweichao    时间: 2014-5-23 03:10
不错  支持一个 楼主辛苦啦  
作者: xxiaoshujjun    时间: 2014-5-23 04:43
这么晚还在忙,真辛苦了
作者: KEY心碎    时间: 2014-5-23 09:09
我表示看不懂!!!!
作者: mucc    时间: 2014-5-23 12:50
终于看完了
作者: 鲁凯啸    时间: 2014-5-23 14:49
mucc 发表于 2014-5-23 12:50
终于看完了

怎么样 有没有不懂的地方?
作者: 鲁凯啸    时间: 2014-5-23 14:49
KEY心碎 发表于 2014-5-23 09:09
我表示看不懂!!!!

哪里看不懂 ?表示提供指导!
作者: Alexander——    时间: 2014-5-23 20:42
打酱油,看不懂!!!
作者: boyu    时间: 2014-5-24 00:02
新手存货  谢谢分享
作者: 鲁凯啸    时间: 2014-5-25 09:24
源码 and  说明  and  例程 :

数据库医生.rar (567.98 KB, 下载次数: 6)


软件运行时没有界面 只有各种信息框提示



部分源码展示:

  
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
id整数型 
数据字节集 
file文本型 
如果真 (文件是否存在 (取运行目录 ()“\DXT.SQL”))
' 存在未加密文件,需要重新生成!
id = 打开加密文件 (取运行目录 ()“\DXT_DOC.SQL”, 4, , “xttflxk”, 25)
如果真 (id = 0)
信息框 (“无法打开加密文件!”, 0, “错误”)
返回 (0)
移到文件首 (id)
写出文本 (id, #文件头 )
如果真 (文件是否存在 (取运行目录 ()“\SQL.ini”))
写出数据 (id, 读入文件 (取运行目录 ()“\SQL.ini”))
写出数据 (id, 读入文件 (取运行目录 ()“\DXT.SQL”))
写出文本 (id, “DOCTOR END”)
关闭文件 (id)
信息框 (“加密文件成功!请测试!”, 0, “恭喜”)
返回 (0)
写到文件 (取运行目录 ()“\SQL.ini”, 到字节集 ( #ini ))
信息框 (“您需要先配置服务器连接方式!”, 0, “抱歉”)
返回 (0)
' 不存在未加密文件!
id = 打开加密文件 (取运行目录 ()“\DXT_DOC.SQL”, 1, , “xttflxk”, 25)
如果真 (id = 0)
信息框 (“请确认修复程式的资源文件的完整性!”#换行符“ Code: 0x001”, 0, “错误”)
返回 (0)
移到文件首 (id)
如果真 (读入文本 (id, 25)#文件头到文本 ({ 0 }))
信息框 (“请确认修复程式的资源文件的完整性!”#换行符“ Code: 0x002”, 0, “错误”)
返回 (0)

' 读入 SQL.INI
如果真 (读入数据 (id, 数据))
信息框 (“读入SQL连接信息失败,请确认修复程式的资源文件的完整性!”#换行符“ Code: 0x003”, 0, “错误”)
返回 (0)
file = 取临时文件名 ()
创建目录 (file)
写到文件 (file + “\SQL.INI”, 数据)
如果真 (连接初始化 (file + “\SQL.INI”))
' 读入 DXT_DOC.SQL
如果真 (读入数据 (id, 数据))
信息框 (“读入SQL连接信息失败,请确认修复程式的资源文件的完整性!”#换行符“ Code: 0x005”, 0, “错误”)
返回 (0)
写到文件 (file + “\DXT_DOC.SQL”, 数据)
如果真 (分析执行SQL命令 (file + “\DXT_DOC.SQL”))
信息框 (“命令分析执行失败,已撤消更改!”#换行符“ Code: 9x001”, 0, “错误”)
返回 (0)
如果真 (读入文本 (id, 10)“DOCTOR END”)
信息框 (“已经执行处理完成,但是没有找到结束标志,更改已保存!”#换行符“ Code: 0x006”, 0, “错误”)

如果真 (是否为调试版 ())
更改保存 (file + “\SQL.INI”)

信息框 (“处理成功!”, 0, )
返回 (0) ' 可以根据您的需要返回任意数值
返回 (0) ' 可以根据您的需要返回任意数值







补充内容 (2014-5-27 08:26):
弊病:  当处理的数据量太大的时候,因为有个超时没有调整,所以会造成程序认为运行脚本失败 但是程序会回滚操作,不会对数据库产生影响!

作者: lukeigun    时间: 2014-5-26 23:42
谢谢分享!!!
作者: lukeigun    时间: 2014-5-26 23:43
谢谢分享!!!
作者: si614614    时间: 2014-8-23 19:50

作者: 灵感ever    时间: 2022-9-26 14:57
支持一下
作者: 灵感ever    时间: 2022-9-26 14:57
支持一下下




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4