#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<strings.h>
#include<unistd.h>
#include<errno.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<sqlite3.h>
void do_insert(sqlite3 * dp,char table[],int id,char word[],char ptr[]);
void do_delate(sqlite3 * dp,char table[],int id);
void do_update(sqlite3 * dp,char table[],int id,char word[],char ptr[]);
void do_select(sqlite3 * dp,char table[]);
int main(int argc, const char *argv[])
{
//打开(或创建)一个数据库
sqlite3 * dp;
if(sqlite3_open(argv[1],&dp) != SQLITE_OK)
{
fprintf(stderr,"[%s]sqlite3_open [%d][%s]__%d__\n",\
argv[1],sqlite3_errcode(dp),sqlite3_errmsg(dp),__LINE__);
return -1;
};
printf("open [%s] success\n",argv[1]);
char table[20] = "words";
int id=1;
char word[20] = "";
char eg[100] = "";
char ptr[100] = "";
//创建一张表格
printf("创建一张表格");
char sql[128] = "";
sprintf(sql,"create table if not exists %s (id int,word char,eg char);",table);
//char *ptr = "create table stu (id int,word char,ptr float);"
char * errmsg;
if(sqlite3_exec(dp,sql,NULL,NULL,&errmsg))
{
fprintf(stderr,"sqlite3_exec:%s __%d__\n",errmsg,__LINE__);
return -1;
}
int j=0,p=0;
FILE* fr=fopen("./dict.txt","r");
while(1)
{
if(NULL==fgets(ptr,sizeof(ptr),fr))
{
printf("copy success\n");
break;
}
bzero(word,sizeof(word));
j=0;
while(ptr[j]!=' ')
{
word[j]=ptr[j];
j++;
}
while(ptr[++j]==' ');
p=0;
bzero(eg,sizeof(eg));
while(ptr[j]!='\n')
eg[p++]=ptr[j++];
printf("[%d] word==%s eg==%s\n",id,word,eg);
do_insert(dp,table,id++,word,eg);
}
fclose(fr);
do_select(dp,table);
//关闭数据库
if(sqlite3_close(dp) != SQLITE_OK)
{
fprintf(stderr,"[%s]sqlite3_open [%d][%s]__%d__\n",\
argv[1],sqlite3_errcode(dp),sqlite3_errmsg(dp),__LINE__);
return -1;
}
printf("close [%s] success\n",argv[1]);
return 0;
}
void do_insert(sqlite3 * dp,char table[],int id,char word[],char ptr[])
{
char sql[128] = "";
sprintf(sql,"insert into %s values (%d,\"%s\",\"%s\");",table,id,word,ptr);
char * errmsg;
if(sqlite3_exec(dp,sql,NULL,NULL,&errmsg))
{
fprintf(stderr,"sqlite3_exec:%s __%d__\n",errmsg,__LINE__);
}
}
int callBack(void *arg,int column,char **column_text,char **column_word)
{
if(0 == *(int *)arg)
{
for(int i=0;i<column;i++)
{
printf("%s\t",column_word[i]);
}
putchar(10);
*(int *)arg = 1;
}
for(int j=0;j<column;j++)
{
printf("%s\t",column_text[j]);
}
putchar(10);
return 0;
}
void do_select(sqlite3 * dp,char table[])
{
char sql[128] = "";
sprintf(sql,"select * from %s;",table);
char * errmsg;
int flag = 0;
if(sqlite3_exec(dp,sql,callBack,&flag,&errmsg))
{
fprintf(stderr,"sqlite3_exec:%s __%d__\n",errmsg,__LINE__);
}
}
网络编程 day7 (导入数据库)
最新推荐文章于 2025-08-22 11:10:38 发布