tiny_sqlite
is a comparatively thin wrapper for the SQLite database library. It differs from the standard library module std/db_sqlite
in several ways:
tiny_sqlite
represents database values with a typesafe case object called DbValue
instead of treating every value as a string, which among other things means that SQLite NULL
values can be properly supported.
tiny_sqlite
is not designed as a generic database API, only SQLite will ever be supported. The database modules in the standard library are built with replaceability in mind so that the code might work with several different database engines just by replacing an import. This is not the case for tiny_sqlite
.
tiny_sqlite
is safe. Unlike std/db_sqlite
the raw SQLite handles are not used directly to prevent use-after-free bugs triggering undefined behavior.
tiny_sqlite
is available on Nimble:
nimble install tiny_sqlite
import tiny_sqlite, std / options
let db = openDatabase(":memory:")
db.execScript("""
CREATE TABLE Person(
name TEXT,
age INTEGER
);
INSERT INTO
Person(name, age)
VALUES
("John Doe", 47);
""")
db.exec("INSERT INTO Person VALUES(?, ?)", "Jane Doe", nil)
for row in db.iterate("SELECT name, age FROM Person"):
let (name, age) = row.unpack((string, Option[int]))
echo name, " ", age
# Output:
# John Doe Some(47)
# Jane Doe None[int]
sqlite3_key是输入密钥,如果数据库已加密必须先执行此函数并输入正确密钥才能进行操作,如果数据库没有加密,执行此函数后进行数据库操作反而会出现“此数据库已加密或不是一个数据库文件”的错误。 int sqlite3_key( sqlite3 *db, const void *pKey, int nKey), db 是指定数据库,pKey 是密钥,nKey 是密钥长度。 例:sqlit
这是我第一次写博客,无非是想记录一下自己的学习过程,同时也希望分享经验。这里我分享一下在Tiny6410开发板上移植sqlite3的一些经验。 实验平台:contos6.5,友善之臂Tiny6410 首先,我们需要准备好sqlite3的安装源代码,在此我附上我此时能用的链接[http://www.sqlite.org/download.html];如该链接失效,请自己查找。 我以sqlite-au
Tiny Web服务器代码分析 《深入理解计算机系统》中开发了一个小但是功能齐全的称为Tiny的web服务器,这里是Tiny服务器的源码解析。 Web 服务器,一个多么庄严而神圣的名词!没有接触之前,它神秘而不可侵犯;学习研究之后,它又是如此地平易近人。今天,让我们一起走近web服务器。 此时,想像一下,当你自己动手实现了一个服务器时,你会是怎么的兴奋;尤其是将一个真正的浏览器指向我们自己实现的服
一、版本 从 www.sqlite.org 网站可下载到最新的 sqlite 代码和编译版本。写此文章时,最新代码是 3.3.17 版本。 二、基本编译 把 sqlite3.c 和 sqlite3.h 添加到工程,再新建一个 main.cpp文件。在里面写: extern "C"{ #include "./sqlite3.h" }; int main( int , char** ){ retur
一、环境介绍 宿主机: Ubuntu18.04 64位 目标开发板型号: 友善之臂Tiny4412 目标开发板操作系统: 使用busybox制作,内核使用官方3.5内核。 使用的编译器版本: 友善之臂光盘里自带的交叉编译器版本是4.5.1,QT5.6之后的源码使用4.5.1版本的编译器无法编译通过,需要高版本的交叉编译器,这里下载了最新的交叉编译器gcc-linaro-7.5.0-2019.1
SQLite驱动支持的SQL 列类型 类型描述 TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB, BYTEA 不限制长度的字符串类型. 二进制数据必须安全地编码存储, 见text类型. CHAR(), VARCHAR(), TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT 不限制长度的字符串类型. 不会被截断或者填充 ENUM 不限制长度的字符串类
1.环境 a.Spring 4.1.4.RELEASE b.sqlite3 c.maven3 d.sqlite-jdbc 3.8.11.2 2.遇到问题 1.方言找不到 2.org.sqlite.JDBC找不到 3.想把数据库文件放到相对路径下 3.解决方案 1.官方貌似没有方言文件,大都是DIY的,自己找到一篇,生成之后配到方言中 package com.fh.server.util; /
1、进入官网https://www.sqlite.org/download.html,下载得到: (1)Source Code,里面有源文件和头文件,有sqlite3.h文件 sqlite-amalgamation-3330000.zip (2)Precompiled Binaries for Windows,里面有sqlite3.dll和sqlite3.def文件,但是没有sqlite3.lib
下载sqlite最新版本3.7.9 http://www.sqlite.org/download.html 源码包: sqlite-autoconf-3071400.tar.gz 解压源码包到/opt目录下: #tar xvzf sqlite-autoconf-3071400.tar.gz –C /opt/ 建立make install目录: # mkdir /opt/
xml在c++中引用 直接将tinyxml的头文件和源文件添加到工程中直接引用 也可以将xml的功能封装在一个类中,生成dll 利用动态链接库进行引用 sqlite3的引用 首先到官网下载sqlite3的相关文件 生成lib文件 将相关的文件拷贝到指定的文件夹中 在工程链接器的输入的附加依赖项中添加dll、 在常规中添加目录 在源文件中添加头文件 之后就可以使用了