fmdatabase – 表示乙個單獨的sqlite資料庫。 用來執行sqlite的命令。
fmresultset – 表示fmdatabase執行查詢後結果集。
fmdatabasequeue – 如果你想在多執行緒中執行多個查詢或更新,你應該使用該類。這是執行緒安全的。
通過指定sqlite資料庫檔案路徑來建立fmdatabase物件
fmdatabase *db = [fmdatabase databasewithpath:path];
if (![db open])
}];
像這樣,輕鬆地把簡單任務包裝到事務裡:
[queue intransaction:^(fmdatabase *db, bool *rollback)
// etc…
[db executeupdate:@"insert into mytable values (?)", [nsnumber numberwithint:4]];
}];
fmdatabasequeue 後台會建立系列化的g
-c-d佇列,並執行你傳給g-c-d佇列的塊。這意味著 你從多執行緒同時呼叫呼叫方法,
gdc也會按它接收的塊的順序來執行。誰也不會吵到誰的腳 ,每個人都幸福。
#import #import "fmdb.h"
@inte***ce sqlliteskstoreproduct : nsobject
-(bool)istanchu;
-(void)setnotrequest;
-(void)resetstarttimes;
-(void)addrestarttimes;
@end
#import "sqlliteskstoreproduct.h"
@inte***ce sqlliteskstoreproduct()
@property fmdatabase *database;
@end
@implementation sqlliteskstoreproduct
-(id)init
-(void)dealloc
-(bool) openskstoreproductdatabase
else
}-(bool) createlogininfotable
else
}-(bool)istanchu
nsdate* installdate=nil;
int restarttimes=0;
int id=-1;
fmresultset *resultset = [self.database executequery:@"select * from storeproduct"];
while ([resultset next])
installdate = [resultset dateforcolumn:@"installdate"];
restarttimes= [resultset intforcolumn:@"starttimes"];
id=[resultset intforcolumn:@"id"];
break;
} nscalendar *gregorian = [[nscalendar alloc] initwithcalendaridentifier:nsgregoriancalendar];
nsdate * curdate=[nsdate date];
nsuinteger unitflags = nsmonthcalendarunit | nsdaycalendarunit | nsyearcalendarunit;
nsdatecomponents *components = [gregorian components:unitflags fromdate:installdate todate:curdate options:0];
long days=[components day];
if (days > 7 && restarttimes >15) else
} else
}-(void)setnotrequest
int id=0;
fmresultset *resultset = [self.database executequery:@"select * from storeproduct"];
while ([resultset next])
[self.database executeupdatewithformat:@"update storeproduct set request = %d where id = %d",no,id];
}}-(void)resetstarttimes
int id=0;
fmresultset *resultset = [self.database executequery:@"select * from storeproduct"];
while ([resultset next])
nsnumber * intnumber=[nsnumber numberwithint:1];
[self.database executeupdatewithformat:@"update storeproduct set starttimes = %@ where id = %d",intnumber,id]; }}
-(void)addrestarttimes
int id=0;
fmresultset *resultset = [self.database executequery:@"select * from storeproduct"];
int restarttimes=0;
while ([resultset next])
nsnumber * intnumber=[nsnumber numberwithint:restarttimes];
[self.database executeupdatewithformat:@"update storeproduct set starttimes = %@ where id = %d",intnumber,id]; }}
@end
參考:
FMDatabase的用法介紹
本人以後都會不定時的寫一些關於ios開發的教程,大家希望可提些意見,大家希望寫些什麼,對大家有幫助的,希望幫到大家 fmdatabase其實是乙個很輕級的sqlite資料庫封裝庫,用object c封裝c,它主要有2個類 fmdatabase和fmresultset 它主要有這些檔案 然後,就需要新...
iOS開發 FMDatabase 使用
id integer primary key autoincrement 設定自增長主鍵 指定資料儲存路徑 fmdatabase 管理資料的類 增 刪 改 查 fmdatabase database fmdatabase alloc initwithpath path open 開啟資料庫 檔案 如...
FMDatabase 的使用方法
ios fmdatabase的使用方法 以下是fmdb的一些基本使用,fmdb框架其實只是一層很薄的封裝,主要的類也就兩個 fmdatabase和fmresultset 其中的fmresultset物件讓我想起了android中sqlite的cursor集合啊。fmdb的github位址是,補充 是...