sqlite3(Sqlite3 语句解析)

Sqlite3 语句解析

自己看示例吧,解释的很清楚了。
void GetTable()
{
sqlite3 * db;
int result;
char * errmsg = NULL;
char **dbResult; //是 char ** 类型,两个*号
int nRow, nColumn;
int i , j;
int index;
result = sqlite3_open( “c:\\Dcg_database.db”, &db );
if( result != SQLITE_OK )
{
//数据库打开失败
return -1;
}
//数据库操作代码
//假设前面已经创建了 MyTable_1 表
//开始查询,传入的 dbResult 已经是 char **,这里又加了一个 & 取地址符,传递进去的就成了 char ***
result = sqlite3_get_table( db, “select * from MyTable_1”, &dbResult, &nRow, &nColumn, &errmsg );
if( SQLITE_OK == result )
{
//查询成功
index = nColumn; //前面说过 dbResult 前面第一行数据是字段名称,从 nColumn 索引开始才是真正的数据
printf( “查到%d条记录\n”, nRow );
for( i = 0; i 《 nRow ; i )
{
printf( “第 %d 条记录\n”, i 1 );
for( j = 0 ; j 《 nColumn; j )
{
printf( “字段名:%s ?》 字段值:%s\n”, dbResult[j], dbResult [index] );
index; // dbResult 的字段值是连续的,从第0索引到第 nColumn – 1索引都是字段名称,从第 nColumn 索引开始,后面都是字段值,它把一个二维的表(传统的行列表示法)用一个扁平的形式来表示
}
printf( “——-\n” );
}
}
//到这里,不论数据库查询是否成功,都释放 char** 查询结果,使用 sqlite 提供的功能来释放
sqlite3_free_table( dbResult );
//关闭数据库
sqlite3_close( db );
return 0;
}
}*/

如何对sqlite3数据库进行加密

给SQLite数据库加密解密的方法:
1、创建空的sqlite数据库。
//数据库名的后缀你可以直接指定,甚至没有后缀都可以
//方法一:创建一个空sqlite数据库,用IO的方式
FileStream fs = File.Create(“c:\\test.db“);
//方法二:用SQLiteConnection
SQLiteConnection.CreateFile(“c:\\test.db“);
创建的数据库是个0字节的文件。
2、创建加密的空sqlite数据库
//创建一个密码为password的空的sqlite数据库
SQLiteConnection.CreateFile(“c:\\test2.db“);
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2.db“);
SQLiteConnection cnn = new SQLiteConnection(“Data Source=D:\\test2.db“);
cnn.Open();
cnn.ChangePassword(“password“);
3、给未加密的数据库加密
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test.db“);
cnn.Open();
cnn.ChangePassword(“password“);
4、打开加密sqlite数据库
//方法一
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2.db“);
cnn.SetPassword(“password“);
cnn.Open();
//方法二
SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder();
builder.DataSource = @”c:\test.db“;
builder.Password = @”password“;
SQLiteConnection cnn = new SQLiteConnection(builder.ConnectionString);
cnn .Open();

ubuntu 怎么安装sqlite3

1、首先建一个文件夹,这里我命名为 sqlite,如下,它的路径为 /home/song/sqlite
2、进入 sqlite 文件夹,执行命令:sudo apt-get install sqlite sqlite3 ,我看着网上都需要安装 sqlite sqlite3,我就纳闷,后者不是前者的升级吗,怎么还需要安装 sqlite,还是不实验了,先安装上用用再说。
这时候已经安装上了,其实安装也没什么的。
3、执行命令:sqlite -version ,查看 sqlite 的版本
同时,我也执行了:sqlite3 -version ,这不是也有一个版本吗,很明显安装的是两个版本,我在想是不是需要支持一些旧格式的文件,所以把就格式也安装上了呢?
使用
创建数据库
4、在该文件夹下,执行命令:sqlite3 test.db ,创建一个名为test.db 的数据库,如下图
5、你可以输入 .help 命令,查看帮助信息。
创建数据表(注意,是数据表,不是数据库了。至少要在数据库中建立一个表或者试图,这样才能将数据库保存在磁盘中,否则数据库不会被创建)
6、现在输入:create table mytable(id,name,age); (注意这里要加分号)我在这里创建了一个名字叫mytabel的数据表,该数据表内定义了三个字段,分别为 id、name、age。
向数据表插入数据
7、执行命令:insert into mytable(id,name,age) values(1,“张三“,“21“);
insert into mytable(id,name,age) values(2,“李四“,“23“);
查询数据表
8、执行命令:select * from mytable;
设置格式
9、执行命令:.mode column (注意没有分号),设置为列显示模式
10、执行命令:
退出数据库
11、执行命令:
再次进入数据库
12、执行命令:sqlite3 test.db 打开咱们刚才创建的数据库
查看数据库信息
13、执行命令:.databases 查看数据库信息
查看该数据库内的表信息
14、执行命令:.tables 可以看到该数据库内有一个表文件
15、执行命令:sudo apt-get install sqlitebrowser 安装可视化工具
16、执行命令:sqlitebrowser test.db ,可以看到咱们的数据库了

请教windows下,安装sqlite3的方法

1.先从官网获取sqlite-amalgamation-3_6_22.zip;2.接着从官网获取sqlitedll-3_6_22.zip
下载编译好的DLL,这里有我们需要的sqlite3.def该文件
3.打开VC新建一个“Win32 Dynamic-Link Library”工程,命名为:sqlite3;
4.在接下来的对话框中选择“An empty DLL project“,点 FINISH-》OK;
5.将sqlite-amalgamation-3_6_22文件夹下的sqlite3.h以及sqlite3.c两个文件复制到工程文件夹下;
将sqlitedll-3_6_22文件夹下的sqlite3.def该文件复制到工程文件夹下;
6.在工程的Source Files中添加sqlite3.c文件;
7.在工程的Include Files中添加sqlite3.h文件;
8.在工程的Resource Files中添加sqlite3.def文件;
9.针对如下问题:
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_database_name
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_database_name16
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_origin_name
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_origin_name16
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_table_name
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_column_table_name16
sqlite3.def : error LNK2001: unresolved external symbol sqlite3_table_column_metadata
Debug/sqlite3.lib : fatal error LNK1120: 7 unresolved externals
在菜单【Project】-【Settings…】-【C/C++】标签下的Category【General】下
Preprocessor definitions下:
新增2个编译选项,分别是:
THREADSAFE
SQLITE_ENABLE_COLUMN_METADATA
10.往工程中添加sqlite3.def文件就是为生成sqlite3.lib文件;
sqlite3.lib是与sqlite3.dll动态链接库文件一起提供给软件开发者的;

怎样可以使用sqlite3命令

进入到sqlite互动模式。输入sqlite3,或者sqilite3+*.db,其中*是数据库的名字,如果没有这个名字的数据库就创建一个新的数据库。
.exit ,退出sqlite互动模式的命令
.help,列出命令的提示信息。
create table 《table_name》 (f1 type1, f2 type2,…);创建新表
.tables显示数据库中所有表名
drop table 《table_name》删除表
.schema 《table_name》 查看表的结构
.database 显示当前打开的数据库文件
insert into 《table_name》 values (value1, value2,…);向表中添加新记录
select * from 《table_name》;查询表中所有记录
11
update 《table_name》 set 《f1=value1》, 《f2=value2》… where 《expression》; 更新表中记录

计算机提示丢失sqlite3.dll怎么办

操作步骤如下:

1、打开某个软件,这是我们会看到系统错误提示,“无法启动此程序,因为计算机中丢失sqlite3.dll。尝试重新安装该程序以解决此问题”;

2、百度sqlite3.dll这个插件,然后下载下来;

3、将sqlite3.dll复制到软件目录下:

4、最后程序就可以打开了:

参考资料

U大师官网:www.udashi.com

无法启动此程序 因为计算机中丢失sqlite3.dll

1、要是软件的话,动态链接数据库文件丢失了,建议重新安装程序。

2、要是系统的话,启动文件按丢失了或者是中病毒了,建议重新安装系统!

方法一

自动安装: 网上下载“下载吧DLL安装器”可以一键安装DLL。 解压压缩包里面的所有文件,运行“安装DLL.exe”程序,点击“安装”按钮即可。 原理是:“下载吧DLL安装器”自动复制对应的DLL到系统目录并尝试注册。

方式二

手动安装: 网上下载相应的*.dll 将解压的*.dll文件复制到系统目录(默认C:\Windows\System32)即可。 某些DLL可能需要注册才能使用,在开始菜单的“运行”中输入“regsvr32 *.dll”回车,无论提示是否注册成功,忽略即可!

注意事项

64位系统用户需要注意,32位的DLL文件放在“C:\Windows\SysWOW64”,64位的DLL文件放在“C:\Windows\System32”。

sqlite3数据库怎么存储数组类型

/*思路是把数组保存成blob格式
#include 《stdio.h》
#include 《stdlib.h》
#include 《string.h》
#include “sqlite3.h“
/*#define DEBUG*/
int main(int argc, char *argv) {
int a = {1,3,8,4,6,6,7,8,9};
int len;
len = sizeof(a)*10;
#ifdef DEBUG
printf(“%d\n“,len);
#endif
sqlite3 *db;
sqlite3_stmt *stmt;
char *sql,*zErr;
int rc;
rc = sqlite3_open_v2(“:memory:“,&db,SQLITE_OPEN_CREATE|SQLITE_OPEN_READWRITE,NULL);
if(rc){
fprintf(stderr,“%s\n“,sqlite3_errmsg(db));
return rc;
}
rc = sqlite3_exec(db,“create table if not exists test(array blob);“,NULL,NULL,&zErr);
if(rc != SQLITE_OK){
fprintf(stderr,“%s\n“,zErr);
sqlite3_free(zErr);
sqlite3_close(db);
return rc;
}
sql = “insert into test values(?);“;
sqlite3_prepare_v2(db,sql,strlen(sql),&stmt,NULL);
sqlite3_bind_blob(stmt,1,a,len,SQLITE_STATIC);
sqlite3_step(stmt);
sqlite3_reset(stmt);
sql = “select * from test;“;
sqlite3_prepare_v2(db,sql,strlen(sql),&stmt,NULL);
sqlite3_step(stmt);
len = sqlite3_column_bytes(stmt,0);
int *data = malloc(len);
memcpy(data,sqlite3_column_blob(stmt,0),len);
sqlite3_finalize(stmt);
sqlite3_close(db);
#ifdef DEBUG
printf(“%d\n“,sizeof(a));
#endif
int i = 0;
while(i《(len/sizeof(a))){
printf(“a=%d, data=%d\n“,a[i],*(data+i));
i++;
}
system(“pause“);
return 0;
}