KTL 一个支持C++14编辑公式的K线技术工具平台 - 第五版,支持sqlite3,全新sqlite3zz语法超简单使用sqlite3; 添加方差等统计函数。
K,K线,Candle蜡烛图。
T,技术分析,工具平台
L,公式Language语言使用c++14,Lite小巧简易。
项目仓库:https://github.com/bbqz007/KTL
国内仓库:https://gitee.com/bbqz007/KTL
CoreAnimation for Windows: https://github.com/bbqz007/xw
zqt5 一个超简单的Qt5窗口语法: https://github.com/bbqz007/zhelper-qt5Widgets
zqlite3 一个超简单的流式语法,整合封装Sqlite3 capis 与 SQL 跟 c/c++程序绑定:https://github.com/bbqz007/sqlite3zz
KTL提供一个c++14编译平台,用户可以使用c++14编辑自定义技术指标等。
用户可以使用crt常用函数,c++标准库容器以及算法,c++14特性编程。
本期更新内容
添加方差等统计函数。
支持sqlite3 capi。
全新sqlite3zz流式语法,超简单使用sqlite3 capi,轻松绑定SQL跟c/c++程序
本平台在本期主要添加对sqlite3支持。
用户可以使用sqlite3存入结果,加载数据,分析数据等。
为方便使用sqlite3 capi,本平台开发了一个全新的sqlite3zz流式语法。
也许你是SQL高手,但是sqlite3 capi太繁琐,无法集中业务逻辑。
也许你轻舟熟驾CREATE, INSERT, UPDATE, SELECT,但是妨碍于不知如何整合在c/c++程序中运行,并绑定参数或结果。
也许太多问号要绑定,SQL语句是否写对了问号数量。
也许你忘了绑定的起始是0还是1,查文档调试太不想。
也许..., 还有一千零一个理由让你觉得麻烦。
现在本平台提供一个全新的sqlite3zz流式语法。
1. 对于基本的SQL语法应用,你甚至不用写任何SQL语句,也不必要认识SQL语法。
2. 简化批量插入更新流程。
3. 完全c++代码定义表结构。
4. 输出流(out << val)绑定参数变量。
5. 输入流(in >> val)输出结果到变量。
6. 自动生成SQL语句。
7. 编译期静态检测类型绑定。
示例1,c++代码定义表结构。
1 auto tbl2 = make_zqlite3_table(
2 select_para<int>("1"),
3 select_para<string>("2"),
4 select_para<double>("dbl"),
5 select_para<vector<char>>("blob"),
6 index_para("1", "2"),
7 index_para("1", "2"));
8
9
示例2,自动生成SQL语句
1 cout << tbl2.create_table_statment("abc") << endl;
2 cout << tbl2.insert_statment("abc") << endl;
3 cout << tbl2.update_statment("abc") << endl;
4 cout << tbl2.select_statment("abc") << endl;
1 CREATE TABLE IF NOT EXISTS `abc` (`1` INTEGER, `2` VARCHAR, `dbl` REAL, `blob` BLOB, UNIQUE (`1` DESC, `2` DESC), UNIQUE (`1` DESC, `2` DESC));
2 INSERT INTO `abc` (`1`, `2`, `dbl`, `blob`) VALUES (?,?,?,?);
3 UPDATE `abc` SET `1` = ?, `2` = ?, `dbl` = ?, `blob` = ?;
4 SELECT `1`, `2`, `dbl`, `blob` FROM `abc` ;
示例3,输出流绑定参数变量,批量插入更新。
1 tbl2.open_db("db");
2 tbl2.create_table("abc");
3 {
4 auto oz = tbl2.insert_into("abc");
5 auto ou = tbl2.update_where("abc", "where `1`=? AND `2` = ?");
6 oz.begin_trans();
7 oz(1, "2", 4., {0, 0});
8 oz << 2 << "e" << 1. << make_pair((char*)NULL, 0) << ios_base::end;
9 if (oz.ignored())
10 ou << 2 << "e" << 1. << make_pair((char*)NULL, 0) << where_para<int>(2) << where_para<string>("e") << ios_base::end;
11 oz.commit_trans();
12 }
示例4,输入流查询count(0)输入到变量。
1 auto cnttbl = make_zqlite3_table(select_para<int>("count(0)").expr());
2 cnttbl.open_db("db");
3 {
4 //// select statment would not lock the database until finalized.
5 auto iz6 = cnttbl.select_from("abc");
6 int cnt = 0;
7 iz6 >> ios_base::beg >> cnt >> ios_base::end;
8 cout << cnt << endl;
9 }
对于上面4个示例,涉及create, insert, update, select的基本使用,完全可以不与SQL语法还有sqltie3 capi打交道。
示例5,输入流查询内联。
1 auto join = make_zqlite3_table(
2 select_para<int>("a.`1`").expr(),
3 select_para<int>("b.`double`").expr());
4 5 join.open_db("db");
6 {
7 auto ij = join.select_from2("abc a, table1 b limit 1");
8 auto row = join.create_row();
9 ij >> ios_base::beg;
10 for (; !ij.eof(); ij >> ios_base::beg)
11 {
12 ij >> std::get<0>(row)
13 >> std::get<1>(row)
14 >> ios_base::end;
16 cout << std::get<0>(row) << ", "
17 << std::get<1>(row) << endl;
18 }
19 }
下期更新更加精彩。
KTL 一个支持C++14编辑公式的K线技术工具平台 - 第五版,支持sqlite3,全新sqlite3zz语法超简单使用sqlite3; 添加方差等统计函数。的更多相关文章
- KTL 一个支持C++14编辑公式的K线技术工具平台 - 第六版,支持OpenGL,3D上帝视角俯视K线概貌。
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- KTL 一个支持C++14编辑公式的K线技术工具平台 - 第七版,体验GPGPU。
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- KTL 一个支持C++14编辑公式的K线技术工具平台 - 第四版,稳定支持Qt5编程,zqt5语法升级,MA函数提升性能1000%,更多公式算法的内置优化实现。
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- 小白学Python(14)——pyecharts 绘制K线图 Kline/Candlestick
Kline-基本示例 from pyecharts import options as opts from pyecharts.charts import Kline data = [ [2320.2 ...
- 打造支持apk下载和html5缓存的 IIS(配合一个超简单的android APP使用)具体解释
为什么要做这个看起来不靠谱的东西呢? 由于刚学android开发,还不能非常好的熟练控制android界面的编辑和操作,所以我的一个急着要的运用就改为html5版本号了,反正这个运用也是须要从serv ...
- SQL点滴14—编辑数据
原文:SQL点滴14-编辑数据 数据库中的数据编辑是我们遇到的最频繁的工作,这一个随笔中我来总结一下最常用的数据编辑. select into 经常遇到一种情况是,我们希望创建一个新表,表中的数据来源 ...
- 在Office上怎么用MathType编辑公式
随着无纸化的办公程序越来越深入普及到社会的各个层面,很多资料都是电子档.从前手写的内容全都转换到了电脑上.用Office办公时,有一个很大的问题,那就是其中的公式要怎么编辑? 从前用手写毫无困难,什么 ...
- 怎么让Word编辑公式又快又好
现在很多办公学习都是在电脑中进行的.很多文件论文都是在Word中编写定稿以后再打印成册或者去投稿.毫无疑问,在Word中编辑各种各样的文字与符号是一项现在社会中非常必要的技能,而这其中一项就是对公式的 ...
- Word中怎么用MathType编辑公式
现如今,用电脑办公学习已经是一个不可阻挡的潮流.而与之相应的就是需要在这些办公软件进行相应的使用,最典型的一种就是要在Word编辑公式.其实在Word中编辑公式是一个很常见的事情,虽然它很常见,但是却 ...
随机推荐
- hashCode()方法的作用?
hashCode()方法与equals()方法相似,都是来自java.lang.Object类的方法,都允许用户定义的子类重写这两个方法. 一般来说,equals这个方法是给用户调用的,如果你想根据自 ...
- 匿名内部类编译生成的class文件
一.问题描述 跳槽到的新公司,相比原来的公司,软件开发非常不规范,经常各种坑.项目部署到生产现场之后,出现问题,我在修改之后编译生成class文件,然后将class文件发给现场的技术支持,技术支持将c ...
- websocket使用nginx代理后连接频繁打开和关闭
前几天开发了一个功能,使用websocket向前台发送消息,与前端联调时一切正常,但是发布到环境出现如下报错: 发现404,无法找到连接,突然想到环境上是走nginx代理的,应该是nginx没有配置代 ...
- 用 Java 写一个折半查找?
折半查找,也称二分查找.二分搜索,是一种在有序数组中查找某一特定元素的搜索算法. 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束:如果某一特定元素大于或者小于中间元素,则 ...
- 比较一下 Java 和 JavaSciprt?
JavaScript 与 Java 是两个公司开发的不同的两个产品.Java 是原 Sun Microsystems 公司推出的面向对象的程序设计语言,特别适合于互联网应用程序 开发:而 JavaSc ...
- Vue Avoided redundant navigation to current location Error
这个报错的根源就是vue-router组件,错误内容翻译一下是: Avoided redundant navigation to current location === 避免冗余导航到当前位置 这个 ...
- spring-boot-learning-配置文件相关
Spring-boot的配置文件 springboot通过那个下面的依赖去读取配置文件的上下文: <!-- https://mvnrepository.com/artifact/org. ...
- 抽象的(abstract)方法是否可同时是静态的(static), 是否可同时是本地方法(native),是否可同时被 synchronized 修饰?
都不能.抽象方法需要子类重写,而静态的方法是无法被重写的,因此二者是矛 盾的.本地方法是由本地代码(如 C 代码)实现的方法,而抽象方法是没有实现 的,也是矛盾的.synchronized 和方法的实 ...
- Java 中,编写多线程程序的时候你会遵循哪些最佳实践?
这是我在写 Java 并发程序的时候遵循的一些最佳实践: a)给线程命名,这样可以帮助调试. b)最小化同步的范围,而不是将整个方法同步,只对关键部分做同步. c)如果可以,更偏向于使用 volati ...
- JVM原理与深度调优
什么是jvm jvm是java虚拟机 运行在用户态.通过应用程序实现java代码跨平台.与平台无关.实际上是"一次编译,到处执行" 1.从微观来说编译出来的是字节码!去到哪个平台都 ...