|
1.功能说明:
本程序主要功能为实时将某个mysql的表数据同步到另一个mysql中。
2.目录说明:pcc.ini:配置文件
TableStructure.sql:导入导出表结构sql
log_20220726.txt:日志,按时间创建
LySqlSync.e:源文件
依赖:libmysql.dll、MySql5.7类.ec、精易模块.ec、七夜_皮肤梦工厂v1.9.ec(皮肤模块)
3.配置文件说明:
配置文件配置说明见附图。
注意1:发布端mysql与订阅端mysql的数据库名称要一致,且数据表名称也要一致
注意2:mysql_TimeLine后面配置的为订阅端数据表的时间字段,格式为XXXX-XX-XX XX:XX:XX
4.使用说明:
a)首先正确配置配置文件,保证发布的mysql和订阅的mysql都是可以正常连接的。
b)导出表结构,点击菜单栏中的:表结构管理->导出表结构,将发布端的表结构导出。
c)导入表结构,点击菜单栏中的:表结构管理->导入表结构,将发布端的表结构导入到订阅端。
注意3:如果订阅端存在表结构请忽略b-c步骤.
d)开始同步,点击菜单栏中的:同步管理->开始同步,开始实时数据同步。
e)结束同步,点击菜单栏中的:同步管理->结束同步,结束实时数据同步。
5.源码:
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | mysql_S | MySql类 | | mysql_C | MySql类 | | 表结构sql | 文本型 | | 是否结束 | 逻辑型 | | 导入sql | 文本型 | | mysql_字段记录 | 文本型 | | mysql_S_ip | 文本型 | | mysql_S_uname | 文本型 | | mysql_S_password | 文本型 | | mysql_C_ip | 文本型 | | mysql_C_uname | 文本型 | | mysql_C_password | 文本型 | | mysql_database | 文本型 | | mysql_datatable | 文本型 | | mysql_TimeLine | 文本型 | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 配置文件地址 | 文本型 | | | 配置文件内容 | 文本型 | | | 七夜_七彩条纹 ()MYSQL_服务初始化 ()是否结束 = 假 配置文件地址 = 取运行目录 () + “\pcc.ini”配置文件内容 = UTF8到文本 (读入文件 (配置文件地址 )) mysql_S_ip = 文本_取出中间文本 (配置文件内容, “mysql_S_ip=”, “;”)mysql_S_uname = 文本_取出中间文本 (配置文件内容, “mysql_S_uname=”, “;”)mysql_S_password = 文本_取出中间文本 (配置文件内容, “mysql_S_password=”, “;”)mysql_C_ip = 文本_取出中间文本 (配置文件内容, “mysql_C_ip=”, “;”)mysql_C_uname = 文本_取出中间文本 (配置文件内容, “mysql_C_uname=”, “;”)mysql_C_password = 文本_取出中间文本 (配置文件内容, “mysql_C_password=”, “;”)mysql_database = 文本_取出中间文本 (配置文件内容, “mysql_database=”, “;”)mysql_datatable = 文本_取出中间文本 (配置文件内容, “mysql_datatable=”, “;”)mysql_TimeLine = 文本_取出中间文本 (配置文件内容, “mysql_TimeLine=”, “;”)超级编辑框2.内容 = mysql_S_ip + #换行符 + mysql_S_uname + #换行符 + mysql_S_password + #换行符 + mysql_C_ip + #换行符 + mysql_C_uname + #换行符 + mysql_C_password + #换行符 + mysql_database + #换行符 + mysql_datatable + #换行符 + mysql_TimeLine mysql_S. 断开 ()mysql_C. 断开 ()MYSQL_服务卸载 ()|
_cha询sql | | | |
参数_开始时间 | 文本型 | | | | 参数_结束时间 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 记录集 | MySql记录集类 | | | i | 整数型 | | | j | 整数型 | | | 字段信息 | MYSQL字段信息 | | | 返回值 | 文本型 | | |
mysql_S. 初始化 ()mysql_S. 连接 (mysql_S_ip, mysql_S_uname, mysql_S_password )mysql_S. 执行SQL语句 (“USE ” + mysql_database )mysql_S. 执行SQL语句 (“set names GBK”)mysql_S. 执行SQL语句 (“SELECT * FROM ” + mysql_datatable + “ WHERE ” + mysql_TimeLine + “>='” + 参数_开始时间 + “' AND ” + mysql_TimeLine + “<'” + 参数_结束时间 + “'”)mysql_S. 取记录集 (记录集 )计次循环首 (记录集. 取字段总数 (), i )记录集. 取字段信息 (i - 1, 字段信息 )计次循环尾 ()导入sql = 导入sql + #换行符 + “insert into `” + mysql_datatable + mysql_字段记录 计次循环首 (记录集. 取行数 (), i )导入sql = 导入sql + #换行符 + “(”计次循环首 (记录集. 取字段总数 (), j )返回值 = 记录集. 读文本 (j - 1 )导入sql = 导入sql + “'” + 返回值 + “',”计次循环尾 ()导入sql = 取文本左边 (导入sql, 取文本长度 (导入sql ) - 1 )导入sql = 导入sql + “),”记录集. 到下一行 ()计次循环尾 ()导入sql = 取文本左边 (导入sql, 取文本长度 (导入sql ) - 1 )导入sql = 导入sql + “;”超级编辑框1.内容 = 导入sql mysql_S. 断开 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | 时间 | 日期时间型 | | | 年 | 文本型 | | | 月 | 文本型 | | | 日 | 文本型 | | | 时 | 文本型 | | | 分 | 文本型 | | | 秒 | 文本型 | | | 返回时间 | 文本型 | | |
时间 = 取现行时间 ()年 = 到文本 (取年份 (时间 )) 月 = 到文本 (取月份 (时间 )) 日 = 到文本 (取日 (时间 )) 时 = 到文本 (取小时 (时间 )) 分 = 到文本 (取分钟 (时间 )) 秒 = 到文本 (取秒 (时间 )) 如果真 (取文本长度 (年 ) < 4 )年 = “0” + 年 如果真 (取文本长度 (年 ) < 4 )年 = “0” + 年 如果真 (取文本长度 (年 ) < 4 )年 = “0” + 年 如果真 (取文本长度 (月 ) < 2 )月 = “0” + 月 如果真 (取文本长度 (日 ) < 2 )日 = “0” + 日 如果真 (取文本长度 (时 ) < 2 )时 = “0” + 时 如果真 (取文本长度 (分 ) < 2 )分 = “0” + 分 如果真 (取文本长度 (秒 ) < 2 )秒 = “0” + 秒 返回时间 = 年 + “-” + 月 + “-” + 日 + “ ” + 时 + “:” + 分 + “:” + 秒 返回 (返回时间 )超级编辑框1.内容 = “”运行 (“cmd /c mysqldump -u” + mysql_S_uname + “ -p” + mysql_S_password + “ -d --add-drop-table ” + mysql_database + “ ” + mysql_datatable + “ > ” + 取运行目录 () + “\TableStructure.sql”, 假, 2 )程序_延时 (1000 )表结构 = 到文本 (读入文件 (取运行目录 () + “\TableStructure.sql”)) 表结构sql = “CREATE TABLE IF NOT EXISTS” + 文本_取出中间文本 (表结构, “CREATE TABLE”, “utf8;”) + “utf8;”超级编辑框1.内容 = 表结构sql 如果 (取文本长度 (超级编辑框1.内容 ) < 50 )信息框 (“导出失败!”, 0, “提示”, )信息框 (“导出成功!”, 0, “提示”, )mysql_C. 初始化 ()mysql_C. 连接 (mysql_C_ip, mysql_C_uname, mysql_C_password )mysql_C. 执行SQL语句 (“use ” + mysql_database )创建表sql = “DROP TABLE IF EXISTS `” + mysql_datatable + “`;”如果 (mysql_C. 执行SQL (表结构sql )) 信息框 (“导入成功!”, 0, “提示”, )信息框 (“导入失败!”, 0, “提示”, )mysql_C.断开 ()mysql_S. 初始化 ()mysql_S. 连接 (mysql_S_ip, mysql_S_uname, mysql_S_password )mysql_C. 初始化 ()mysql_C. 连接 (mysql_C_ip, mysql_C_uname, mysql_C_password )变量名 | 类 型 | 静态 | 数组 | 备 注 | 记录集 | MySql记录集类 | | | i | 整数型 | | | j | 整数型 | | | 字段信息 | MYSQL字段信息 | | | 返回值 | 文本型 | | |
mysql_S. 初始化 ()mysql_S. 连接 (mysql_S_ip, mysql_S_uname, mysql_S_password )mysql_S. 执行SQL语句 (“USE ” + mysql_database )mysql_S. 执行SQL语句 (“set names GBK”)mysql_S. 执行SQL语句 (“DESC ” + mysql_datatable )mysql_S. 取记录集 (记录集 )计次循环首 (记录集. 取字段总数 (), i )记录集. 取字段信息 (i - 1, 字段信息 )计次循环尾 ()mysql_字段记录 = “`(`”计次循环首 (记录集. 取行数 (), i )计次循环首 (1, j )返回值 = 记录集. 读文本 (j - 1 )mysql_字段记录 = mysql_字段记录 + 返回值 + “`,`”计次循环尾 ()记录集. 到下一行 ()计次循环尾 ()mysql_字段记录 = 取文本左边 (mysql_字段记录, 取文本长度 (mysql_字段记录 ) - 2 )mysql_字段记录 = mysql_字段记录 + “) values”超级编辑框2.内容 = mysql_字段记录 + #换行符 + 超级编辑框2.内容 mysql_S. 断开 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | 开始时间 | 文本型 | | | 结束时间 | 文本型 | | | 句柄 | | | | 文件号 | 整数型 | | |
开始时间 = _获取当前时间 ()超级编辑框2.内容 = 超级编辑框2.内容 + #换行符 + 开始时间 + “ ” + “开始同步操作成功!”程序_延时 (5000 )结束时间 = _获取当前时间 ()_读取字段 ()如果真 (文件是否存在 (取运行目录 () + “\log_” + _获取当前日期 () + “.txt”) = 假)写到文件 (取运行目录 () + “\log_” + _获取当前日期 () + “.txt”, 到字节集 (“”)) 文件号 = 打开文件 (取运行目录 () + “\log_” + _获取当前日期 () + “.txt”, , )移到文件尾 (文件号 )写出文本 (文件号, 超级编辑框2.内容 )关闭文件 (文件号 )循环判断首 ()如果真 (文件是否存在 (取运行目录 () + “\log_” + _获取当前日期 () + “.txt”) = 假)写到文件 (取运行目录 () + “\log_” + _获取当前日期 () + “.txt”, 到字节集 (“”)) 文件号 = 打开文件 (取运行目录 () + “\log_” + _获取当前日期 () + “.txt”, , )移到文件尾 (文件号 )_cha询sql (开始时间, 结束时间 )mysql_C. 初始化 ()mysql_C. 连接 (mysql_C_ip, mysql_C_uname, mysql_C_password )mysql_C. 执行SQL语句 (“use se5000”)mysql_C. 执行SQL语句 (“set names GBK”)如果 (mysql_C. 执行SQL语句 (导入sql )) 超级编辑框2.内容 = 超级编辑框2.内容 + #换行符 + “导入成功:” + 开始时间 + “ - ” + 结束时间 如果 (超级编辑框1. 取行数 () < 5 )写出文本 (文件号, #换行符 + “未cha询到数据:” + 开始时间 + “-” + 结束时间 + #换行符 + “日志:” + 超级编辑框1.内容 )超级编辑框2.内容 = 超级编辑框2.内容 + #换行符 + “未cha询到数据:” + 开始时间 + “-” + 结束时间 + #换行符 + “日志:” + 超级编辑框1.内容 超级编辑框2.内容 = 超级编辑框2.内容 + #换行符 + “导入失败:” + 开始时间 + “-” + 结束时间 + #换行符 + “失败日志:” + 超级编辑框1.内容 写出文本 (文件号, #换行符 + “导入失败:” + 开始时间 + “-” + 结束时间 + #换行符 + “失败日志:” + 超级编辑框1.内容 )关闭文件 (文件号 )开始时间 = 结束时间 mysql_C. 断开 ()程序_延时 (5000 )导入sql = “”超级编辑框1.内容 = “”如果真 (超级编辑框2. 取行数 () > 50 )超级编辑框2.内容 = “”结束时间 = _获取当前时间 ()循环判断尾 (取反 (是否结束 )) 文件号 = 打开文件 (取运行目录 () + “\log_” + _获取当前日期 () + “.txt”, , )移到文件尾 (文件号 )写出文本 (文件号, #换行符 + 结束时间 + “ ” + “结束同步操作成功!”)关闭文件 (文件号 )是否结束 = 真 超级编辑框2.内容 = 超级编辑框2.内容 + #换行符 + _获取当前时间 () + “ ” + “结束同步操作成功!”变量名 | 类 型 | 静态 | 数组 | 备 注 | 时间 | 日期时间型 | | | 年 | 文本型 | | | 月 | 文本型 | | | 日 | 文本型 | | | 返回日期 | 文本型 | | |
时间 = 取现行时间
|
评分
-
查看全部评分
|