代码
database.h
#include <sqlite3.h> // ����SQLite�ӿں���#include<stdio.h>// ����һ��ȫ�ֵ����ݿ��ʶ��int open_database(const char *dbfile); // �������ݿ����ԭ��int close_database(void); // �������ݿ�رպ���
database.c
#include "database.h"extern sqlite3 *db;int open_database(const char *dbfile) // �������ݿ����{int result;result = sqlite3_open(dbfile, &db ); // ��һ�����ݿ�return result;}int close_database(void) // �������ݿ�رպ���{int result;result = sqlite3_close(db);return result;}
21_1_4.c
#include <stdio.h>#include <string.h>#include "database.h"#define TM_L 14 // 定义表示时间的字符串长度sqlite3 *db=NULL;typedef struct _calllist callist;struct _calllist {long id; // 记录编号int type; // 通话类型long telnum; // 对方号码char btime[TM_L]; // 通话起始时间long tcount; // 通话时长float charge_rate; // 费率float charge_sum; // 总费用};void printdb(callist *cl, int length) // 输出记录函数{int i = sizeof(callist);int j;char btime[TM_L + 1] = {0}; // 用于读取字符串,为字符串加入结束符for(j = 0 ;j < length / i; j++) {memcpy(btime, (cl + j) -> btime, TM_L); // 将字符串读出printf("%ld, %d, %ld, %14s, %ld, %1.2f, %1.2f\n", // 输出数据中的内容(cl + j) -> id,(cl + j) -> type,(cl + j) -> telnum,btime,(cl + j) -> tcount,(cl + j) -> charge_rate,(cl + j) -> charge_sum);}}
编译运行: