Tôi đang sử dụng trình bao bọc FMDatabase cho SQLite3 trong Ứng dụng OSX của mình. Tôi làm tấn chèn vào cơ sở dữ liệu:Sự cố "Mở quá nhiều tệp" được sử dụng bởi FMDatabase/SQLite3
FMResultSet *results;
results= [db executeQuery:@"select count(*) from `items` where key = ?",[keyPath lowercaseString],nil];
while([results next])
{
if([results unsignedLongLongIntForColumnIndex:0]>0){
updateOperation=TRUE;
}
}
[results close];
if(updateOperation){
[db executeUpdate:@"update `items` set OSXsize=?,OSXOsize=?, OSXDate=?, UUID=?,sourceFile=?,tombStone=0,SandBoxBookMark=?,songname=?,albumartist=? where key=?",
size,originalSize, convertedDate,UUID,sourcePath,bookmark,fileName,albumArtist,[keyPath lowercaseString] , nil];
}
else
{
[db executeUpdate:@"insert into `items`(key,filepath, OSXsize, OSXOsize, OSXdate,UUID,sourceFile,tombStone,SandBoxBookMark,songname,albumartist) values(?,?,?,?,?,?,?,0,?,?,?)",
[keyPath lowercaseString], dapPath, size,originalSize, convertedDate,UUID,sourcePath,bookmark,fileName,albumArtist, nil];
}
tôi mở cơ sở dữ liệu một lần, tuy nhiên, tôi nhìn thấy 4725 + tập tin xử lý kèm theo như các ứng dụng tiến bộ trong giám sát hoạt động:
/Users/userA/Library/Containers/com.map-pin.Dapper/Data/Library/Application Support/com.map-pin.Dapper/dapperright.sqlite
15
16
...
4724
4725
Sử dụng fmdatabasequeue bật tính năng ghi nhật ký đã tiết lộ bộ kết quả truy vấn không được đóng đúng cách – JeremyLaurenson
Vui mừng khi biết bạn đã giải quyết nó. –