为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

易语言批量sql解析为数组, SQL终结符解析

三叶资源网 2019-06-23 14:24:40 易语言例程 1254 ℃ 1 评论

前段时间在写一个服务端程序的时候,  需要用到mysql.

客户端连接服务端执行sql分好几种情况, { 查询SQL, 执行SQL, 执行SQL事务, 批量执行支持, 查询执行混合 } ...

其中的"批量执行"就有点让我头疼, 玩过sql的都知道, 批量执行一般以";" 终结符算一条sql语句, 以此分割.

难点就是把批量的sql语句, 分割为单条, 一个一个的执行.    估计有的易友可能想到了"分割文本, 发送文本数组"

首先"发送文本数组", 我不喜欢,  有时候显得麻烦.

其次"分割文本", 你可能会遇到这样以下这样的情况, 也就是sql字符串中出现了";", 你能怎么办? 你也很绝望对吧?

复制代码

[font=微软雅黑]INSERT INTO `User`(name) values('剑''齿;虎');  SELECT LAST_INSERT_ID();[/font]

以上问题还有, 字符串中包含单引号就需要用两个单引号表示....

实在不想屈服于前面两种蛋疼的方式,  试着自己封装子程序解析, 忽略字符串什么的.   有时候脑子是个好东西,  可惜我好像没有似的...   感觉设计起来还挺复杂麻烦的,  我没学过什么脚本设计,  编译设计的.

于是前段时间论坛有几个帖子被顶起来了,  一个叫"无间酱"的大佬制作了好几个练手的脚本语言设计,   

我灵机一动...  脚本也会遇到这样的问题,   就把源码中的解析终结符部分给抠出来了...  总算说到重点了.

刚开始还不能直接用,   改了改还算可以了.   

示例

复制代码

INSERT INTO User (name,pwd) values('剑齿虎;哇', 'aabb');--注释A:插入语句--

SELECT * FROM User; /*注释B:查询*/

UPDATE User SET pwd='ac''c' WHERE uid=1

结果:

数组:3{

    “INSERT INTO User (name,pwd) values('剑齿虎;哇', 'aabb');”,

    “--注释A:插入语句-- SELECT * FROM User;”,

    “/*注释B:查询*/ UPDATE User SET pwd='ac''c' WHERE uid=1”

}

@kn剑齿虎

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有1位网友发表了看法:

  • 易语言

    易语言  评论于 [2020-04-25 15:52:26]  回复

    易语言sql批量修改

  • 编程助手

    编程助手  评论于 [2020-06-06 11:01:47]  回复

    易语言+sql+按数字变量+检索

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
吃鸡泰服矩阵多功能管理器树型框纯组件实现圆形头像比心APP登录HookSTEAMudp广播组播云的多文档窗口界面支持库因特网服务支持库靠边隐藏关键词监控MB浏览框浏览文本处理游民星空GDI+伪原创源码.表情包制作JS
最新评论