按著步驟一步一步來:
定義資料庫的名字變數:
nsstring* databasename = @"database.sql";
定義資料庫的路徑
nsstring* databasepath;
nsarray *paths = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);
nsstring *documentsdirectory = [paths objectatindex:0];
這邊可以使用輸出的語句來進行檢驗!
nslog(@"databasepath=%@",databasepath);
定義宣告乙個sqlite3指標變數
sqlite3* database;
初始化資料庫方法
- (bool)initializedatabase
int rt = sqlite3_open([databasepath utf8string], &database);//開啟資料庫方法
//nslog(@"rt = %d", rt);
if (rt == sqlite_ok)
} else
// even though the open failed, call close to properly clean up resources.
sqlite3_close(database);//關閉資料庫
nsassert1(0, @"failed to open database with message '%s'.", sqlite3_errmsg(database));
//需要返回0才是正常返回,>0都是錯誤的!
return rt;
定義你要對資料庫中的表的操作的語句
nsstring* currentsqlstatement;
比如:currentsqlstatement=@"create table if not exists fields (id integer primary key, text text);
接著就可以定義方法來執行該語句:
比如:-(void)commitsqlstatement
int ret;
insstmt = null;//注意這個初始化的語句一定是null,如果是insstmt是全域性變數的話,在執行新的語句的時候一定要null,要不然會報錯
int success=0;
//列印想要執行的語句
nslog(@"sql=%@",currentsqlstatement);
if (!insstmt) {
if ((ret=sqlite3_prepare_v2(database, [currentsqlstatement utf8string], -1, &insstmt, null)) != sqlite_ok) {
nsassert1(0, @"error commit [%s]", sqlite3_errmsg(database));
switch (operationtype) {//operationtype是乙個整形值,代表的是操作的型別,可以自己定義
case createtable:
success = sqlite3_step(insstmt);
if (success != sqlite_done)
nslog(@"error:failed to dehydrate:create table channels");
else
nslog(@"create table successed!");
sqlite3_finalize(insstmt);
break;
資料庫入門之一 簡單查詢
1,簡單查詢的 首先是從最開始的延伸,最基礎的查詢 我寫在了下面 select a1,a2,a3.an from r1,r2,r3.rm where p a1,a2,a3.an是表中的屬性 而r1,r2,r3.rm是資料庫中的表 p是查詢謂詞,也就是查詢的條件,根據關係進行投影 2,當查詢所有資料的...
SQL Plus的簡單使用之一
oracle在oracle 8.0.5之前都是使用字元介面來進行資料庫的操作與管理的。而那時候其他最重要的工具就是sql plus,它既可以編輯sql語句,也可以編輯和除錯pl sql的程式。下面我一步一步的來學習sql plus的基本使用 一 啟動sql plus 在unix linux系統下首先...
SQL Plus的簡單使用之一
oracle在oracle 8.0.5之前都是使用字元介面來進行資料庫的操作與管理的。而那時候其他最重要的工具就是sql plus,它既可以編輯sql語句,也可以編輯和除錯pl sql的程式。下面我一步一步的來學習sql plus的基本使用 一 啟動sql plus 在unix linux系統下首先...