程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> c/c++ sqlite 範例

c/c++ sqlite 範例

編輯:關於SqlServer
前幾天隨便做的一個範例,以提供某天用到的時候作參考。
環境Cygwin+sqlite3





#ifdef SQLITE_ENABLE_ICU
  #udefine SQLITE_ENABLE_ICU
#endif

/**//*
#ifndef SQLITE_CORE
  #define SQLITE_CORE
#endif
*/

#include <stdio.h>
#include "sqlite3.h"
#include <iOStream>

using namespace std;

const char* sqlCreate ="CREATE TABLE items(id integer primary key, stocknum float, name varchar(30), price float, status varchar(12) )";
const char* sqlSelect ="SELECT stocknum,name,price FROM items ORDER BY stocknum";
const char* sqlInsert0="INSERT INTO items VALUES(NULL, 323.123, ''Product01'', 565.456, ''IN'')";
const char* sqlInsert1="INSERT INTO items VALUES(NULL, 423.123, ''莉?'', 665.456, ''IN'')";
const char* sqlInsert2="INSERT INTO items VALUES(NULL, 523.123, ''Product02'', 765.456, ''IN'')";

int printedHeader=0;
static int callback(void *NotUsed, int columns, char **azData, char **azColName)...{
    int i;
  if( printedHeader==0 )...{
        printedHeader=1;
        for(i=0; i<columns; i++)...{
            printf("%s   ", azColName[i]);
        }
        printf(" ");
    }
    for(i=0; i<columns; i++)...{
        printf("%s  ", azData[i] ? azData[i] : "NULL");
    }
    printf(" ");
    return 0;
}

int main(int argc, char **argv)...{
    cout<<"Begin, please waiting..."<<endl;
    cout<<"Parameters:"<<endl;
    for(int k=1; k<argc; k++)
        cout<<" "<<k<<" ->  "<<argv[k]<<endl;
    cout<<endl;
    
    sqlite3 *db;
   char *zErrMsg = 0;
    int rc;

    if( argc!=3 )...{
        printf("Usage: %s DATABASE SQL-STATEMENT ", argv[0]);
        return(1);
    }
    rc = sqlite3_open(argv[1], &db);
    if( rc )...{
        printf("Can''t open database: %s ", sqlite3_errmsg(db));
        sqlite3_close(db);
        return(1);
    }

    rc = sqlite3_exec(db, sqlCreate, NULL, 0, &zErrMsg);
    if( rc!=SQLITE_OK )...{
        printf("Create SQL error: %s ", zErrMsg);
        sqlite3_free(zErrMsg);
    }
    rc = sqlite3_exec(db, sqlInsert0, NULL, 0, &zErrMsg);
 if( rc!=SQLITE_OK )...{
        printf("INSERT SQL 0 error: %s ", zErrMsg);
        sqlite3_free(zErrMsg);
    }
    rc = sqlite3_exec(db, sqlInsert1, NULL, 0, &zErrMsg);
    if( rc!=SQLITE_OK )...{
        printf("INSERT SQL 1 error: %s ", zErrMsg);
        sqlite3_free(zErrMsg);
    }
    rc = sqlite3_exec(db, sqlInsert2, NULL, 0, &zErrMsg);
    if( rc!=SQLITE_OK )...{
        printf("INSERT SQL 2 error: %s ", zErrMsg);
        sqlite3_free(zErrMsg);
    }

    rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
    if( rc!=SQLITE_OK )...{
        printf("SQL error: %s ", zErrMsg);
        sqlite3_free(zErrMsg);

    }
  &nbsp; sqlite3_close(db);
    printf("Finished, exit now. ");
    return 0;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved