Мне нужно прочитать локальный файл sqlite, который на моем iPad мне не нужен, просто как его открыть, отправную точку. Я загрузил файл с FTP-сервера и нашел его в своем приложении.Прочтите локальный файл sqlite
ответ
Открытие и закрытие базы данных SQLite не так уж сложно. Вам просто нужно выполнить следующие шаги:
Шаг 1 - скопируйте базу данных из своего пакета в папку документов вашего приложения.
Вы не хотите, чтобы возиться с пакетом версии базы данных, вы хотите использовать конкретный экземпляр для этого устройства.
//*******************************************
- (void)copyDatabaseToDocumentsFolder {
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *localDatabase = [documentsPath stringByAppendingPathComponent: @"YourDatabaseFileName.sql"];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath: localDatabase];
if (fileExists == NO) {
NSError *err;
// Get the path to the database in the application package
NSString *databaseInAppBundle = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: @"YourDatabaseFileName.sql"];
// Copy the file from the package to the users filesystem
if (![[NSFileManager defaultManager] copyItemAtPath: databaseInAppBundle toPath: localDatabase error: &err]) {
NSLog(@"Database copy failed: %@", [err description]);
}
}
}
Шаг 2: - создать Ивар для базы данных.
@interface YourClass() {
sqlite3 *localDB;
}
@end
Шаг 3 - открывать и закрывать при необходимости.
//*******************************************
- (void)closeDatabase {
if (localDB != nil) {
sqlite3_close(localDB);
localDB = nil;
}
}
//*******************************************
- (void)openDatabase {
if (localDB == nil) {
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
char *dbpath = (char *)[[documentsPath stringByAppendingPathComponent: @"YourDatabaseFileName.sql"] UTF8String];
sqlite3_open(dbpath, &localDB);
}
}
Что такое dbpath? – Dim
Извините, плохая копия и вставка. Я обновил код выше. – Axeva
Похоже, что у [OP есть проблемы] (http://stackoverflow.com/questions/27041238/open-db-in-documents-folder) с помощью метода 'openDatabase', который я ожидаю вернуть' BOOL' в указывают на успех. Возможно, стоит обновить код. – trojanfoe
- 1. Прочтите локальный файл в AngularJS
- 2. Прочтите локальный текстовый файл, используя Javascript
- 3. Прочтите локальный файл HTML от CasperJS start()
- 4. Прочтите файл sqlite с камнем sqlite3
- 5. Прочтите локальный файл в firefox с помощью файлаAPI
- 6. Прочтите локальный файл из приложения Google с помощью Python
- 7. Отправить локальный файл sqlite на сервер
- 8. Прочтите файл sqlite в sdcard и отобразите результаты в android
- 9. Прочтите файл JSON vb.net
- 10. Прочтите файл .ini vb.net?
- 11. Прочтите файл для CRC32
- 12. Прочтите файл .txt C++
- 13. Прочтите файл Outlook .msg
- 14. Прочтите файл github
- 15. Backbone.js: Прочтите json-файл
- 16. Прочтите файл JSON?
- 17. Прочтите файл в банке
- 18. Прочтите файл в Node.js
- 19. Прочтите файл в FPGA
- 20. Прочтите текстовый файл
- 21. Python - скачать локальный файл
- 22. Прочтите файл базы данных Android с компьютера
- 23. Прочтите .xml-файл на windows phone
- 24. Прочтите файл JungUm Global (Samsung)
- 25. Прочтите файл из неизвестного местоположения?
- 26. Прочтите текстовый файл с Java
- 27. Прочтите текстовый файл в R
- 28. Прочтите файл с установкой Inno
- 29. Прочтите файл YAML в OpenCV
- 30. Прочтите файл .txt на Android
Есть слишком много возможных ответов, или хорошие ответы будут слишком длинными для этого формата. Пожалуйста, добавьте детали, чтобы сузить набор ответов или изолировать проблему, на которую можно ответить в нескольких абзацах. – l0gg3r
Кстати, [FMDB] (https://github.com/ccgus/fmdb) может упростить программирование SQLite Objective-C, а не использовать [API-интерфейс SQLite C] (https://www.sqlite.org/ c3ref/intro.html). – Rob