c语言从文件中读入格式化数据并存入sqlite3

本文介绍如何利用C语言从格式化的文件中读取数据,并将其有效地存储到SQLite3数据库中,涉及文件操作及数据库交互的技巧。
摘要由CSDN通过智能技术生成
这周做数据库作业,其中一个小部分是从文件中读入格式化数据并存入sqlite3中。一开始只是为了完成实验内容而写了一个专门的函数来完成。
但写完之后发现有时候我们确实是需要从文件中读入格式化数据的。所以想写一个通用的函数,通过给定的参数来从文件中读入数据。

先是各个函数的解读,然后是所有的代码。
//************************************
// Method:    insertData 从文件中读取记录并插入数据库
// FullName:  insertData
// Access:    public 
// Returns:   int
// Qualifier:
// Parameter: sqlite3 * db sqlite3实例指针
// Parameter: char * fileName 要读取内容的文件名
// Parameter: int maxSize 每行记录的最大长度
// Parameter: char * tableName 要插入数据的表名
// Parameter: int length 字段数
// Parameter: int * format 每个字段的格式,数字:1,字符(串):0
//************************************
int insertData(sqlite3 *db, char *fileName, int maxSize, char *tableName, int length, int *format);
这个函数就是封装的读取插入数据的最终形态。参数简要描述如注释里面说的那样。前4个参数应该都好理解,可能需要解释的就是最后两个参数了。
int length 指的是你要插入数据的表(tableName)里一共有多少字段。
int *format 这其实是一个整型数组。你在定义的时候可以使用format[n]的形式,实参就是format。这个数组代表的是数据库表中每一个字段是数字还是字符串。了解数据库的同学应该都知道,简单的DBMS的sql语句在插入数值时其实只有三种:数字,字符串,NULL。而数字和NULL的插入方式是一样的。
如下是插入数字的sql语句:
    insert into tableName (number)values(12);
这句话想tableName中插入了一组记录,插入的类型是数字。
如下是插入字符串的sql语句:
    insert into talbeName (string) values ('hello world');
应该看出区别的了,两者的唯一区别就是字符串多了一对单(双)引号。因为在c语言中,字符串只能用双引号("")来括起来,所以我们在c语言里的sql语句只能使用单引号('')了。
那么上面的format就好理解了。按照顺序,如果第i个字段(从0计数)为字符串形式,则format[i] = 0,如果第i个字段为数字形势,则format[i] = 1;
当然,这个函数时假设插入的数据中是按顺序包含每一个字段。
如果需要只插入某些,可以自行修改。
//************************************
// Method:    myGetSQL 通过文件内容获取的sql语句
// FullName:  myGetSQL
// Access:    public 
// Returns:   int
// Qualifier: insertData()
// Parameter: FILE * file 导入数据的文件名
// Parameter: int maxSize 文件里每行记录的最大长度
// Parameter: char * tableName 需要插入数据库的表名
// Parameter: char ** SQL sql执行语句
// Parameter: int fields 字段数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值