# 编译方法
## 编译环境vs2017 + matlab2020a
```
mex -output sql64 sqlite_alloc.c sqlite3_interface_strict.c sqlite3.c structlist_strict.c -D_HAVE_SQLITE_CONFIG_H -O
```
这个项目是对下面的代码进行了修改
```
https://github.com/thrynae/sqlite3
```
https://ww2.mathworks.cn/matlabcentral/mlc-downloads/downloads/257c98ce-cf7f-4bad-9bec-854570c6172a/dca441c7-80ab-4967-a51c-300b7876df77/packages/zip/github_repo.zip
## 对上述代码修了些致命bug(比如 mxDestroyArray,空字符处理 、BLOB类型、兼容 int8等)
## mxDestroyArray去掉后速度更快了,没必要自己清内存。
## 此项目的速度瓶颈在频繁使用mxCreatexxxMatrix
## 和jar库相比速度类似。
## 很好的支持GBK(中文编码)。jar包的jdbc方式读取sqlite,支持中文路径必须将win10设置unicode UTF-8
### 此项目对每一个变量独立进行了内存申请,兼容了一列多个变量类型的宽松格式(sqlite特性),速度很慢,很耗内存。
# 使用方法
### 程序输出结构体,需要table输出使用sqlite3.m
```
r =sqlite3('哈.db3','SELECT * FROM test');
rr(1).a='1';
rr(1).b={"123456789",2,3,4};
rr(1).c=int8(1);
rr(1).d=uint16(1);
sql ='INSERT INTO test(some_text, 哈, some_real, 好) VALUES(?,?,?,?);';
[r2,r1]=sql64('哈.db3',sql,rr)
rr(2).a='1';
rr(2).b={1,2,3,4};%BLOB
rr(2).c=uint8(1);
rr(2).d=uint16(1);
sql ='INSERT INTO test(some_text, 哈, some_real, 好) VALUES(?,?,?,?);';
[r2,r1]=sql64('哈.db3',sql,rr)
````