?? test1.c
字號:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <strings.h>#include <time.h>#include <errno.h>#include <math.h>#include <signal.h>#include <sys/mman.h>#include <sys/stat.h>#include <sys/types.h>#include <semaphore.h>#include <pthread.h>#include "dbfunc.h"int main(){ int result, query_qt, i; char buf[1024], sql[1024]; emp_t emp; emp_t *pa_emp; resume_t resume; /*----- 連接數據庫 -----*/ if(DbsInit()!=DB_OK || DbsConnect(10)!=DB_OK) { printf("Connect fail\n"); DbsDisConnect(10); exit(1); } printf("Connect OK\n"); /*----- select一條記錄,使用bind -----*/ emp.no=0; strcpy(sql, "select no,upd_ts,name,duty,age,salary from emp where no=:no"); if(DbsEMP_SEL(10, sql, &emp)!=DB_OK) { printf("Select 1 rec fail\n"); } else { printf("no:%.0lf\n", emp.no); printf("upd_ts:%s\n", emp.upd_ts); printf("name:%s\n", emp.name); printf("duty:%s\n", emp.duty); printf("age:%d\n", emp.age); printf("salary:%.2lf\n", emp.salary); printf("select 1 rec succeed\n"); } printf("**********************************************\n"); /*----- select一批記錄,使用帶bind的cursor,由cursor函數分配空間 -----*/ emp.age=35; strcpy(sql, "select no,name,age from emp where age<:age order by no"); if(DbsEMP_CUR(10, sql, &emp, &pa_emp, &query_qt)!=DB_OK) { printf("select from cursor failed\n"); } for(i=0; i<query_qt; i++) { printf("no:%.0lf name:%s age:%d\n", pa_emp[i].no, pa_emp[i].name, pa_emp[i].age); } printf("select from cursor succeed\n"); free(pa_emp); //由應用釋放cursor函數分配的空間 printf("**********************************************\n"); /*----- 插入帶blob類型域的記錄 -----*/ resume.no=10; resume.resume=(char *)malloc(32768); strcpy(buf, "我一個高中同學告訴我,他小時將“邊區的太陽紅又紅”聽成“變壓器的太陽紅又紅”!!!!!他還給我講了原因。因為他那時根本不知道“邊區”是什么?只是記得很清楚,每天傍晚時可以看見村子西邊紅紅的落日。最要命的是在他們村子西邊的某個高處架著一臺變壓器。傍晚的時候,剛好可以看到變壓器上方一輪紅日此美景讓我的同學印象頗深。于是便與每天傍晚都放的那首歌聯系起來。此君還納悶,為什么寫歌的人知道他們村的變壓器放在西邊。"); resume.resume[0]='\0'; for(i=0; i<1; i++) strcat(resume.resume, buf); if(DbsRESUME_INS(10, NULL, &resume)!=DB_OK) { printf("insert blob fail\n"); DbsRollback(10); } else { printf("insert blob succeed\n"); DbsCommit(10); } printf("**********************************************\n"); /*----- 選出帶blob類型域的記錄 -----*/ resume.no=10; resume.resume[0]='\0'; if(DbsRESUME_SEL(10, NULL, &resume)!=DB_OK) { printf("select lob fail\n"); } else { printf("no:%.0lf len:%d\n", resume.no, strlen(resume.resume)); printf("resume:%s\n", resume.resume); printf("select lob succeed\n"); } printf("**********************************************\n"); /*----- 刪除一條記錄,直接執行 -----*/ sprintf(sql, "delete from resume where no=%d", 10); if(DbsSQLExec(10, sql)!=DB_OK) { printf("Delete resume fail\n"); DbsRollback(10); } else { printf("Delete resume succeed\n"); DbsCommit(10); } printf("**********************************************\n"); ERROR: DbsDisConnect(10); exit(0);}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -