用mysql多线程查询东西,很容易崩溃,现在改进了,但是还是有待改进,不过基本功能已经完善,自用已经写了好几项目,借鉴的论坛的线程池,非常好用哈,
.版本 2 .支持库 spec .支持库 mysql .程序集 Mysql, , 公开 .程序集变量 集_Mysql句柄, 整数型 .程序集变量 集_许可证, 临界许可 .程序集变量 集_心跳句柄, 整数型 .程序集变量 集_心跳语句, 文本型 .子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用 线程_初始化COM库 () 集_许可证 = 临界_创建 () 集_Mysql句柄 = 0 .子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用 线程_取消COM库 () 临界_销毁 (集_许可证) 断开 () .子程序 心跳 调试输出 (“开始执行心跳线程”, 集_Mysql句柄) .判断循环首 (真) 临界_进入 (集_许可证) 执行SQL语句 (集_Mysql句柄, 集_心跳语句) 释放记录集 (取记录集 (集_Mysql句柄)) ' '释放记录集 临界_退出 (集_许可证) Sleep (1000 × 300) .判断循环尾 () .子程序 编码, 逻辑型, 公开 .参数 参_编码, 文本型 .局部变量 局_返回, 逻辑型 临界_进入 (集_许可证) 局_返回 = 执行SQL语句 (集_Mysql句柄, “set names '” + 参_编码 + “'”) 临界_退出 (集_许可证) 返回 (局_返回) .子程序 错误, 文本型, 公开 .局部变量 ret_err, 文本型 临界_进入 (集_许可证) 取错误文本 (集_Mysql句柄, ret_err) 临界_退出 (集_许可证) 返回 (ret_err) .子程序 句柄, 整数型, 公开 .参数 参_Mysql句柄, 整数型, 可空 .如果真 (是否为空 (参_Mysql句柄) = 假) 集_Mysql句柄 = 参_Mysql句柄 .如果真结束 返回 (集_Mysql句柄) .子程序 连接, 逻辑型, 公开, 连接时启动心跳线程,断开时销毁 .参数 参_服务器地址, 文本型 .参数 参_用户名, 文本型 .参数 参_密码, 文本型 .参数 参_数据库名, 文本型 .参数 参_端口, 整数型 .参数 参_心跳语句, 文本型 .如果真 (集_Mysql句柄 ≠ 0) 关闭MySql (集_Mysql句柄) .如果真结束 集_Mysql句柄 = 连接MySql (参_服务器地址, 参_用户名, 参_密码, 参_数据库名, 参_端口) .如果真 (集_Mysql句柄 ≠ 0) 集_心跳句柄 = 线程_启动1 (类回调_取类地址 (3, , , ), , ) .如果真结束 集_心跳语句 = 参_心跳语句 返回 (集_Mysql句柄 ≠ 0) .子程序 断开, 逻辑型, 公开 .局部变量 局_返回, 逻辑型 .如果真 (集_Mysql句柄 ≠ 0) 局_返回 = 关闭MySql (集_Mysql句柄) 集_Mysql句柄 = 0 线程_销毁 (集_心跳句柄) 线程_关闭句柄 (集_心跳句柄) .如果真结束 返回 (局_返回) .子程序 增加, 逻辑型, 公开 .参数 参_数据表名, 文本型 .参数 参_赋值Json, 文本型 .局部变量 局_SQL语句, 文本型 .局部变量 局_Json, 类_json .局部变量 局_返回, 逻辑型 .局部变量 局_属性名, 文本型, , "0" .局部变量 局_计次, 整数型 .局部变量 局_增加字段, 文本型 .局部变量 局_增加内容, 文本型 临界_进入 (集_许可证) .如果真 (局_Json.解析 (参_赋值Json)) .计次循环首 (局_Json.取所有属性名 (局_属性名), 局_计次) .判断开始 (局_增加字段 = “”) 局_增加字段 = 局_属性名 [局_计次] .默认 局_增加字段 = 局_增加字段 + “, ” + 局_属性名 [局_计次] .判断结束 .判断开始 (局_增加内容 = “”) 局_增加内容 = “'” + 局_Json.取通用属性 (局_属性名 [局_计次]) + “'” .默认 局_增加内容 = 局_增加内容 + “, ” + “'” + 局_Json.取通用属性 (局_属性名 [局_计次]) + “'” .判断结束 .计次循环尾 () .如果真 (取文本长度 (局_增加字段) ≠ 0 且 取文本长度 (局_增加内容) ≠ 0) 局_SQL语句 = “INSERT INTO ” + 参_数据表名 + “ (” + 局_增加字段 + “) VALUES (” + 局_增加内容 + “)” 局_返回 = 执行SQL语句 (集_Mysql句柄, 局_SQL语句) 释放记录集 (取记录集 (集_Mysql句柄)) ' '释放记录集 .如果真结束 .如果真结束 临界_退出 (集_许可证) 返回 (局_返回) .子程序 删除, 逻辑型, 公开 .参数 参_数据表名, 文本型 .参数 参_删除条件, 文本型, , 格式: name='1' or pass='2' .局部变量 局_返回, 逻辑型 .局部变量 局_SQL语句, 文本型 临界_进入 (集_许可证) 局_SQL语句 = “DELETE FROM ” + 参_数据表名 + “ WHERE ” + 参_删除条件 局_返回 = 执行SQL语句 (集_Mysql句柄, 局_SQL语句) 释放记录集 (取记录集 (集_Mysql句柄)) ' '释放记录集 临界_退出 (集_许可证) 返回 (局_返回) .子程序 修改, 逻辑型, 公开 .参数 参_数据表名, 文本型 .参数 参_条件语句, 文本型, , 格式:name='1' or pass='2' .参数 参_赋值Json, 文本型 .局部变量 局_返回, 逻辑型 .局部变量 局_SQL语句, 文本型 .局部变量 局_Json, 类_json .局部变量 局_赋值语句, 文本型 .局部变量 局_属性名, 文本型, , "0" .局部变量 局_计次, 整数型 临界_进入 (集_许可证) .如果真 (局_Json.解析 (参_赋值Json)) .计次循环首 (局_Json.取所有属性名 (局_属性名), 局_计次) .如果真 (局_赋值语句 = “”) 局_赋值语句 = 局_属性名 [局_计次] + “='” + 局_Json.取通用属性 (局_属性名 [局_计次]) + “'” 到循环尾 () .如果真结束 局_赋值语句 = 局_赋值语句 + “, ” + 局_属性名 [局_计次] + “='” + 局_Json.取通用属性 (局_属性名 [局_计次]) + “'” .计次循环尾 () .如果真 (取文本长度 (局_赋值语句) ≠ 0) 局_SQL语句 = “UPDATE ” + 参_数据表名 + “ SET ” + 局_赋值语句 + “ WHERE ” + 参_条件语句 局_返回 = 执行SQL语句 (集_Mysql句柄, 局_SQL语句) 释放记录集 (取记录集 (集_Mysql句柄)) ' '释放记录集 .如果真结束 .如果真结束 临界_退出 (集_许可证) 返回 (局_返回) .子程序 查找, 逻辑型, 公开 .参数 参_数据表名, 文本型 .参数 参_查找条件, 文本型, 可空, 格式: name='1' and pass='2' 为空查找全部 .参数 参_返回Json, 文本型, 参考 可空 数组 .参数 局_返回字段, 文本型, 可空, id,name,pass,user .局部变量 局_返回, 逻辑型 .局部变量 局_计次, 整数型 .局部变量 局_结果字段, 文本型 .局部变量 局_结果值, 文本型 .局部变量 局_结果Json, 文本型 .局部变量 局_SQL语句, 文本型 .局部变量 局_记录集句柄, 整数型 .局部变量 局_记录数量, 整数型 临界_进入 (集_许可证) 清除数组 (参_返回Json) .判断开始 (是否为空 (参_查找条件)) .判断开始 (是否为空 (局_返回字段)) 局_SQL语句 = “SELECT * FROM ” + 参_数据表名 .默认 局_SQL语句 = “SELECT ” + 局_返回字段 + “ FROM ” + 参_数据表名 .判断结束 .默认 .判断开始 (是否为空 (局_返回字段)) 局_SQL语句 = “SELECT * FROM ” + 参_数据表名 + “ WHERE ” + 参_查找条件 .默认 局_SQL语句 = “SELECT ” + 局_返回字段 + “ FROM ” + 参_数据表名 + “ WHERE ” + 参_查找条件 .判断结束 .判断结束 局_返回 = 执行SQL语句 (集_Mysql句柄, 局_SQL语句) .判断开始 (局_返回 = 真) 局_记录集句柄 = 取记录集 (集_Mysql句柄) 局_记录数量 = 取记录集行数 (局_记录集句柄) .计次循环首 (局_记录数量, ) 局_结果Json = “{” .计次循环首 (取字段总数 (局_记录集句柄), 局_计次) 序号到字段名 (局_记录集句柄, 局_计次 - 1, 局_结果字段) 读字段值 (局_记录集句柄, 局_结果字段, 局_结果值) .判断开始 (局_结果Json = “{”) 局_结果Json = 局_结果Json + #引号 + 局_结果字段 + #引号 + “:” + #引号 + 局_结果值 + #引号 .默认 局_结果Json = 局_结果Json + “, ” + #引号 + 局_结果字段 + #引号 + “:” + #引号 + 局_结果值 + #引号 .判断结束 .计次循环尾 () 局_结果Json = 局_结果Json + “}” 加入成员 (参_返回Json, 局_结果Json) 到下一行 (局_记录集句柄) .计次循环尾 () 释放记录集 (局_记录集句柄) .默认 释放记录集 (取记录集 (集_Mysql句柄)) ' '释放记录集 .判断结束 临界_退出 (集_许可证) 返回 (局_返回)

我的微信
微信扫一扫
评论