2013-05-29 28 views
0

我在我的iphone應用程序中使用FMDB封裝類的數據庫。應用程序凍結FMDB執行更新查詢

當我調用帶有數據庫執行更新查詢的類時,應用程序會凍結很多次。

樣品:

BOOL success = [database executeUpdate:@"UPDATE JOBTABLE SET ST = ? WHERE jobid = ?",@"Accepted",[NSNumber numberWithInt:[jobIDStr intValue]]]; 

我試圖通過之前和這個代碼後添加日誌測試這一點。 在控制檯打印前的行,然後應用程序凍結。

我正在調用其他類的代碼行。

我曾試圖調用此方法使用下面的代碼,以及

Addjob *addjob=[[AddJob Alloc]init]; 
[addjob performSelectorInBackground:@selector(addJobHttpRequest) withObject:Nil]; 

這也沒有爲我工作。函數addjob包含數據庫更新查詢。

+0

可以粘貼'addJobHttpRequest'功能代碼 – arthankamal

+0

當應用程序處於凍結狀態時,您可以點擊XCode中的'暫停'按鈕,並更好地查看其凍結位置(通常是無限循環/遞歸)。代碼似乎沒問題,在主線程中調用方法是正確的方法(應該在單個線程中使用FMDatabase對象)。 –

+0

我應該使用[addjob addJobHttpRequest]來調用它;或者使用後臺調用的方法是可以的。 – TechFanatic

回答

1

在AddJob.h

創建

Addjob *addjob=[[AddJob Alloc]init]; 

並嘗試訪問功能.m文件。

+0

這也適用於我的應用程序中的許多情況下,我在.m文件中使用此代碼。 – TechFanatic

0

if([db open])

NSString * queryStr;

queryStr = [NSString stringWithFormat:@"Update yourTableName set DatabasefieldName = '%@' where serial=%i ",databaseFieldValue,serialValue intValue]]; 

    [db executeUpdate:queryStr]; 
+0

如果您關心清理,例如'txtDbFieldName.text'可能用於創建sql注入,則不太好。 –

+0

同樣的錯誤,當我嘗試它。沒有爲我工作。 – TechFanatic