开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4002|回复: 3
收起左侧

[改进提议] 建议增加SQL数据处理类

[复制链接]
结帖率:100% (7/7)
发表于 2019-4-24 14:04:58 | 显示全部楼层 |阅读模式   上海市上海市
本帖最后由 wxyzyou 于 2019-4-24 14:28 编辑

一起来补全精易模块功能
最近SQL操作使用的较多,自写了个数据处理类
主要处理插入SQL和更新SQL表
分享出来
测试代码
  
子程序名返回值类型公开备 注
TEST  
变量名类 型静态数组备 注
SqlDataSqlData 
i整数型 
bin字节集 
计次循环首 (2, i)
SqlData.PUT (“S”到文本 (i), 到文本 (i))
计次循环尾 ()
计次循环首 (2, i)
SqlData.PUT (“I”到文本 (i), 到文本 (i), 1)
计次循环尾 ()
计次循环首 (2, i)
SqlData.PUT (“SD”到文本 (i), 到文本 (i), 0)
计次循环尾 ()
SqlData.PUT (“ZW1”, “test中文”)
SqlData.PUTU (“ZW2”, 编码_Ansi到Utf8 (“test中文”))
SqlData.PUTU (“ZW3”, 编码_Ansi到Utf8 (“test中文测试”))
SqlData.PUT (“ID”, “123178”, 1)
SqlData.PUT (“TEST”, “”, 1)
SqlData.PUT (“TEST1”, “”, 2)
SqlData.PUT (“TEST2”, “”, )
SqlData.PUT (“TEST3”, “34”, 1)
SqlData.PUT (“TEST4”, “12”, )
SqlData.PUT (“SD4”, “测试内容”)
bin = SqlData.GetSqlData (“testTable”)
' ANSI,参数添加时有UTF8中文编码的,会乱码,注意编码格式
调试输出 (到文本 (bin))
' UTF8,参数添加时有ANSI中文编码的,会乱码,注意编码格式
调试输出 (编码_Utf8到Ansi (bin))
bin = SqlData.GetSqlDataUpdate (“testTable”)
' ANSI,参数添加时有UTF8中文编码的,会乱码,注意编码格式
调试输出 (到文本 (bin))
' UTF8,参数添加时有ANSI中文编码的,会乱码,注意编码格式
调试输出 (编码_Utf8到Ansi (bin))
' 输出结果
' “INSERT INTO testTable(S1,S2,I1,I2,SD1,SD2,ZW1,ZW2,ZW3,ID,TEST,TEST2,TEST3,TEST4,SD4) VALUES('1','2',1,2,'1','2','test中文','test涓枃','test涓枃娴嬭瘯',123178,0,'',34,'12','测试内容')”
' “INSERT INTO testTable(S1,S2,I1,I2,SD1,SD2,ZW1,ZW2,ZW3,ID,TEST,TEST2,TEST3,TEST4,SD4) VALUES('1','2',1,2,'1','2','test????','test中文','test中文测试',123178,0,'',34,'12','????????')”
' “UPDATE testTable SET S1='1',S2='2',I1=1,I2=2,SD1='1',SD2='2',ZW1='test中文',ZW2='test涓枃',ZW3='test涓枃娴嬭瘯',ID=123178,TEST=0,TEST2='',TEST3=34,TEST4='12',SD4='测试内容'”
' “UPDATE testTable SET S1='1',S2='2',I1=1,I2=2,SD1='1',SD2='2',ZW1='test????',ZW2='test中文',ZW3='test中文测试',ID=123178,TEST=0,TEST2='',TEST3=34,TEST4='12',SD4='????????'”



i支持库列表   支持库注释   
spec特殊功能支持库

类 源码,用到精易模块的 编码_Ansi到Utf8
  
窗口程序集名保 留  保 留备 注
SqlData   
变量名类 型数组备 注
_ArrayValue字节集0 
_ArrayName字节集0 
_ArrayType整数型00文本 1数值 2 NULL 默认0

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用

子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
Reset 重置 清空数据
重定义数组 (_ArrayValue, 假, 0)
重定义数组 (_ArrayName, 假, 0)
重定义数组 (_ArrayType, 假, 0)
子程序名返回值类型公开备 注
PUT 
参数名类 型参考可空数组备 注
name文本型
value文本型
type整数型0文本 1数值 2 NULL 默认0  NULL会判断字段内容为空时,自动填入NULL 否则按文本处理
ToUtf8逻辑型默认假 ANSI, 真=把name和value 转为UTF8 针对非生僻字中文存入
如果真 (ToUtf8)
PUTU (name, 编码_Ansi到Utf8 (value), type)  ' 编码_Ansi到Utf8 来源 精易模块
返回 ()
加入成员 (_ArrayName, 到字节集 (name))
加入成员 (_ArrayValue, 到字节集 (value))
加入成员 (_ArrayType, type)
子程序名返回值类型公开备 注
PUTU UTF8  针对带有生僻字的数据存入
参数名类 型参考可空数组备 注
name文本型
value字节集自行编码为UTF8传入
type整数型0文本 1数值 2 NULL 默认0  NULL会判断字段内容为空时,自动填入NULL 否则按文本处理
加入成员 (_ArrayName, 编码_Ansi到Utf8 (name))  ' 编码_Ansi到Utf8 来源 精易模块 键名编码是为了,处理中文键名问题
加入成员 (_ArrayValue, value)
加入成员 (_ArrayType, type)
子程序名返回值类型公开备 注
GetSqlData字节集 (name) values(value)
参数名类 型参考可空数组备 注
table文本型表名
尾部补零逻辑型默认为真 补零  
变量名类 型静态数组备 注
i整数型 
names字节集 
values字节集 
逗号字节集 
单引字节集 
计次循环首 (取数组成员数 (_ArrayValue), i)
如果真 (i = 2)  ' 1不用逗号
逗号 = { 44 }

如果真 (判断字段类型 (i, 单引))
names = names + 逗号 + _ArrayName [i]
values = values + 逗号 + 单引 + _ArrayValue [i] + 单引

计次循环尾 ()
names = { 40 } + names + { 41 }
values = { 32, 86, 65, 76, 85, 69, 83, 40 } + values + { 41 }
如果 (是否为空 (尾部补零) 尾部补零)
values = 到字节集 (“INSERT INTO ” + table) + names + values + { 0 }
values = 到字节集 (“INSERT INTO ” + table) + names + values
返回 (values)
' (names)
' VALUES(values)
' SQLiet为UTF8 尾部补个零,ANSI和UTF8兼容使用,如果后续还需要添加WHER条件等字符时,不要补零
子程序名返回值类型公开备 注
GetSqlDataUpdate字节集 name=value UPDATE的方式返回
参数名类 型参考可空数组备 注
table文本型表名
尾部补零逻辑型默认为真 补零  
变量名类 型静态数组备 注
i整数型 
values字节集 
逗号字节集 
单引字节集 
等号字节集 
等号 = { 61 }
计次循环首 (取数组成员数 (_ArrayValue), i)
如果真 (i = 2)  ' 1不用逗号
逗号 = { 44 }

如果真 (判断字段类型 (i, 单引))
values = values + 逗号 + _ArrayName [i] + 等号 + 单引 + _ArrayValue [i] + 单引

计次循环尾 ()
如果 (是否为空 (尾部补零) 尾部补零)
values = 到字节集 (“UPDATE ” + table + “ SET ”) + values + { 0 }
values = 到字节集 (“UPDATE ” + table + “ SET ”) + values
返回 (values)
' SQLiet为UTF8 尾部补个零,ANSI和UTF8兼容使用,如果后续还需要添加WHER条件等字符时,不要补零
子程序名返回值类型公开备 注
判断字段类型逻辑型 
参数名类 型参考可空数组备 注
i整数型
单引字节集
单引 = {  }
判断 (_ArrayType [i] = 0)  ' 0文本
单引 = { 39 }
判断 (_ArrayType [i] = 1)  ' 1数值
如果真 (_ArrayValue [i]{  })
_ArrayValue [i]{ 48 }  ' 使用数值时,空内容补0

判断 (_ArrayType [i] = 2 _ArrayValue [i]{  })  ' 是否 NULL
单引 = { 39 }
返回 ()
返回 ()


发表于 2019-5-1 17:04:13 | 显示全部楼层   辽宁省葫芦岛市
来看看            
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:83% (97/117)
发表于 2019-4-24 14:47:02 | 显示全部楼层   浙江省杭州市
全是英文不符合国民需求翻译一下再来
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 13 天

 楼主| 发表于 2019-4-24 14:16:07 | 显示全部楼层   上海市上海市
使用案例
TIM图片20190424141529.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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