SQL C 介面

來源:互聯網
上載者:User

標籤:sqlite3   資料庫   

網站:www.sqlite.org1、開啟資料庫:     int sqlite3_open(           const char *filename,  /*資料庫名,可包含路徑*/           sqlite3 **ppDb             /*指向sqlite控制代碼的指標*/     );     成功返回0(宏定義為SQLITE_OK),失敗返回錯誤碼。     資料庫名存在就開啟,不存在就建立並開啟。2、關閉資料庫:      int sqlite3_close(sqlite3* );      成功關閉返回0,失敗返回錯誤碼,開啟一個資料庫記得要關閉。3、出錯判斷:      char *sqlite3_errmsg(sqlite3* );4、執行sql操作      int sqlite3_get_table(            sqlite3 *db,           /*開啟資料庫的控制代碼*/            const char *zSql,   /*sql語句*/            char ***pazResult, /*指向sql執行結果的指標*/            int *pnRow,           /*滿足條件的記錄的數目*/            int *pnColumn,     /*每條記錄包含的欄位數目*/            char **pzErrmsg    /*錯誤資訊指標的地址*/       );       成功返回0,失敗返回錯誤碼。       void sqlite3_free_table(char **result); /*釋放存放記錄的空間*/5、執行sql操作:      int sqlite3_exec(            sqlite3 *,                                                     /*開啟資料庫控制代碼*/            const char *sql,                                           /*sql語句*/            int (*callback) (void *, int, char **, char **), /*執行函數*/                  void *,                                                          /*函數的參數*/            char **errmsg                                              /*錯誤資訊指標的地址*/       );       成功返回0,失敗返回錯誤碼。       執行函數:每找到一條自動執行一次函數       typedef int (*sqlite3_callback) (            void *para,      /*傳遞給函數的參數*/            int f_num,       /*記錄中包含欄位的數目*/            char **f_value, /*每個欄位值的指標數組*/            char **f_name  /*每個欄位名稱的指標數組*/       );
------------------------------------------------------------------------------------樣本1:在資料庫中建立一個表#include <stdio.h>#include <stdlib.h>#include <sqlite3.h> 
static int callback(void *NotUsed, int argc, char **argv, char **azColName){   int i;   for(i=0; i<argc; i++){      printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");   }   printf("\n");   return 0;}
int main(int argc, char* argv[]){   sqlite3 *db;   char *zErrMsg = 0;   int  rc;   char *sql;
   /* Open database */   rc = sqlite3_open("test.db", &db);   if( rc ){      fprintf(stderr, "Can‘t open database: %s\n", sqlite3_errmsg(db));      exit(0);   }else{      fprintf(stdout, "Opened database successfully\n");   }
   /* Create SQL statement */   sql = "create table company("  \            "id int primary key  not null," \            "name              text  not null," \            "age                  int   not null," \            "address           char(50)," \            "salary              real );";
   /* Execute SQL statement */   rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);   if( rc != SQLITE_OK ){   fprintf(stderr, "SQL error: %s\n", zErrMsg);      sqlite3_free(zErrMsg);   }else{      fprintf(stdout, "Table created successfully\n");   }   sqlite3_close(db);   return 0;}---------------------------------------------------------------------------------樣本2:在建立的表中查詢資料#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>
int main(int argc, char* argv[]){   sqlite3 *db;   char *zErrMsg = 0;   int rc;   char **dbResult;   int nRow, nColumn;   int index = 0;   int i, j;   char *sql;
   /* Open database */   rc = sqlite3_open("test.db", &db);   if( rc ){      fprintf(stderr, "Can‘t open database: %s\n", sqlite3_errmsg(db));      exit(0);   }else{      fprintf(stderr, "Opened database successfully\n");   }
   /* Create SQL statement */   sql = "select * from company;";
   /* Execute SQL statement */   rc = sqlite3_get_table(db, sql, &dbResult, &nRow, &nColumn, &zErrMsg);   if( rc == SQLITE_OK ){      printf("select %d number\n", nRow);      for (i=0; i<nRow; i++) {           for(j=0; j<nColumn; j++) {    printf("name:%s  value:%s", dbResult[j], dbResult[index]);                }          printf("\n");      }   }   sqlite3_free_table(dbResult);   sqlite3_close(db);   return 0;}

著作權聲明:有不正確的地方,還望各位指正指導,Thanks!

SQL C 介面

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.