SQLite初試

#include <winsqlite/winsqlite3.h>
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <vld.h>


#define SQL_MAX_LENTH 256

#pragma comment(lib,"winsqlite3.lib")



//回調函數一般都是static靜態函數,靜態函數只能在本文件中調用
static int SQLITE_CALLBACK callback(void *NotUsed, int argc, char **argv, char **azColName)
{ 
	int i = 0;    
	for (i = 0; i < argc; i++) 
	{ 
		printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL"); 
	}    
	printf("\n");        
	return 0; 
}

bool sqlite3_ExecuteSQL(sqlite3* db,char* sql,char*zErrMsg)
{
	/* Execute SQL statement */
	int ret = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
	if (ret != SQLITE_OK)
	{
		fprintf(stderr, "Error SQL: %s\n", zErrMsg);
		sqlite3_free(zErrMsg);
		return false;
	}
}

int main()
{
	sqlite3 *db = NULL;
	char * sql = NULL;
	char * zErrMsg = NULL;

	//打開指定得數據庫文件,如果不存在就創建一個同名數據庫文件
	int r = sqlite3_open((const char*)"PhoneNum.db", &db);
	if (r)
	{
		printf("sqlite3 open fail\n");
	}
	else
	{
		printf("sqlite open sucsucess\n");
	}

	//增刪查改
	/* Create SQL statement */    
	//sql = (char*)("CREATE TABLE PhoneNum("     
	//	  "PhNum CHAR(11) PRIMARY KEY     NOT NULL,"     
	//	  "NetN  CHAR(3),"  
	//	  "ISP   TEXT,"    
	//	  "AreaN CHAR(4)," 
	//	  "City  TEXT,"
	//	  "UserN CHAR(4));");

	/*sql = (char*)("insert into PhoneNum(PhNum,NetN,ISP,AreaN,City,UserN)	\
		values(\"13476758962\", \"134\", \"移動\", \"7675\",\"湖北黃岡\", \"8962\");");*/

	sql = (char*)"select * from PhoneNum;";

	sqlite3_ExecuteSQL(db, sql, zErrMsg);

	//關閉數據庫
	sqlite3_close(db);

	system("pause");
	return 0;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章