📄 demo.c
字号:
#include<stdlib.h>#include<stdio.h>#include<sys/types.h>#include<fcntl.h>#include<sys/stat.h>#include<unistd.h>#include<string.h>#include"table.h"int main(void){ //建表 printf("start table_creat\n"); T_ColumnInfo infos[4]; T_TableDes* pTable=NULL; strcpy(infos[0].szColumnName,"No"); infos[0].ColumnType=shortint; strcpy(infos[1].szColumnName,"Name"); infos[1].ColumnType=conchars; strcpy(infos[2].szColumnName,"Age"); infos[2].ColumnType=shortint; strcpy(infos[3].szColumnName,"Score"); infos[3].ColumnType=floatval; pTable=malloc(sizeof(T_TableDes)); pTable=table_create("/root/TestTable.tbl",infos,4); if(pTable!=NULL) printf("/root/TestTable.tbl created\n\n"); else { printf("/root/TestTable.tbl failed\n\n"); exit(EXIT_FAILURE); } //插入6条记录 printf("start record_insert\n"); T_FieldNode pFields[4]; //pFields=malloc(sizeof(T_FieldNode)*4); int nInsert=6,i; for(i=0;i<nInsert;i++) { strcpy(pFields[0].szColumnName,"No"); strcpy(pFields[1].szColumnName,"Name"); strcpy(pFields[2].szColumnName,"Age"); strcpy(pFields[3].szColumnName,"Score"); (short*)pFields[0].pFieldData=malloc(sizeof(short)); (char*)pFields[1].pFieldData=malloc(sizeof(char)*8); (short*)pFields[2].pFieldData=malloc(sizeof(short)); (float*)pFields[3].pFieldData=malloc(sizeof(float)); printf("please input record %d\n",i); scanf("%hd%s%hd%f",(short*)pFields[0].pFieldData,(char*)pFields[1].pFieldData,(short*)pFields[2].pFieldData,(float*)pFields[3].pFieldData); //调用do_record_insert插入一条记录 if(do_record_insert(pTable,pFields,4)) printf("record %d inserted\n\n",i); else { printf("insert failed\n"); exit(EXIT_FAILURE); } } printf("insert over\n\n\n"); //free(pFields); //显示表记录 printf("start table_show\n"); do_table_show(pTable); printf("show over\n\n\n"); //查询记录Name=zhumei printf("start record query for Name=zhumei\n"); T_Conditions* pCon1; pCon1=malloc(sizeof(T_Conditions)); (char*)pCon1->pReferValue=malloc(sizeof(char)*MAX_CONSTRINGLEN); strcpy(pCon1->szColumnName,"Name"); strcpy((char*)pCon1->pReferValue,"zhumei"); pCon1->nRelation=equal; record_show(pTable, do_record_query(pTable,pCon1)); free(pCon1); printf("query over\n\n"); //更新记录项Score<60为70 printf("start record update score<60 to =70\n"); float temp=60.00; float newval=70.00; T_Conditions* pCon2; T_FieldNode* pNew; pCon2=malloc(sizeof(T_Conditions)); strcpy(pCon2->szColumnName,"Score"); (float*)pCon2->pReferValue=&temp; pCon2->nRelation=smaller; pNew=malloc(sizeof(T_FieldNode)); strcpy(pNew->szColumnName,"Score"); (float*)(pNew->pFieldData)=&newval; if(!do_record_update(pTable,pCon2,pNew)) printf("updated\n"); else { printf("update failed\n"); exit(EXIT_FAILURE); } free(pCon2); free(pNew); printf("update over\n\n"); //显示表记录 printf("start table_show\n"); do_table_show(pTable); printf("show over\n\n"); //删除记录Name=chen printf("start record_delete for Name=chen\n"); T_Conditions* pCon3; pCon3=malloc(sizeof(T_Conditions)); (char*)pCon3->pReferValue=malloc(sizeof(char)*MAX_CONSTRINGLEN); strcpy(pCon3->szColumnName,"Name"); strcpy((char*)pCon3->pReferValue,"chen"); pCon3->nRelation=equal; do_record_delete(pTable,pCon3); free(pCon3); printf("delete over\n\n"); //显示表记录 printf("start table_show\n"); do_table_show(pTable); printf("show over\n\n"); //关闭表 printf("start table_close\n"); table_close(pTable); printf("close over\n\n"); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -