Ouverture et création de base de données SQLite en Objective-C
Je veux développer une application iOS, donc je suis Objectif d'apprentissage C. j'ai suivi un tutoriel pour l'utilisation d'une base de données SQLite dans mon application. (http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_7_Application)
J'ai le code suivant pour l'ouverture et la création de ma base de données, mais il ne fonctionne pas! Je reçois le message "Echec de l'ouverture ou de la création de la base de données". Quelqu'un peut me dire quel est le problème?
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *docsDir;
NSArray *dirPaths;
//Get the documents directory
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
docsDir = dirPaths[0];
//Build the patht to the database file
_databasePath = [[NSString alloc]initWithString: [docsDir stringByAppendingPathComponent: @"contacts.db"]];
NSFileManager *filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath:_databasePath] == NO) {
const char *dbpath = [_databasePath UTF8String];
if (sqlite3_open(dbpath, &_contactDB) == SQLITE_OK) {
char *errMsg;
const char *sql_stmt = "CREATE TABLE IF NOT EXISTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT";
if (sqlite3_exec(_contactDB, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK) {
_lblStatus.text = @"Failed to create table";
}
sqlite3_close(_contactDB);
} else {
_lblStatus.text = @"Failed to open or create database";
}
}
}
J'ai inclus " libsqlite3.dylib " et ajouté de #import pour le H de fichier.
pourquoi vous n'êtes pas à l'aide de CoreData? C'est simple
Je vais essayer ce tutoriel à propos de CoreData: techotopia.com/index.php/.... Mais quelqu'un peut te-moi quel est le problème avec mon code?
a u vérifié ma réponse?
Je vais essayer ce tutoriel à propos de CoreData: techotopia.com/index.php/.... Mais quelqu'un peut te-moi quel est le problème avec mon code?
a u vérifié ma réponse?
OriginalL'auteur Marten | 2014-05-09
Vous devez vous connecter pour publier un commentaire.
Dans votre code, il y a une erreur
Utilisation NSDocumentDirectory pas NSDocumentationDirectory
Je pense que ça va résoudre votre problème.
Dans ma suggestion, vous pouvez essayer de base de données. C'est plus simple
Vous pouvez essayer ce tutoriel
http://www.raywenderlich.com/934/core-data-tutorial-for-ios-getting-started
Il est vraiment très simple et facilement compréhensible.
pls upvote ma réponse
Vous avez sauvé ma vie, @manujmv
OriginalL'auteur manujmv
DBConnection.h
DBConnection.m
utiliser pour créer une table de base de données et
ceci est le fichier de base de données, nous pouvons utiliser toute façon....
Pouvez-vous donner un exemple d'utilisation? Semble utile pour moi
OriginalL'auteur nitin kachhadiya
Vous devez effectuer les opérations suivantes:
1) Changement NSDocumentationDirectory à NSDocumentDirectory dans NSSearchPathForDirectoriesInDomains paramètre de la fonction dans votre code.
2) Votre code à l'intérieur de la première de 'si' bloc n'est pas correct. Il devrait plutôt être les suivants:
3) Enfin, écrire le code que vous avez déjà pour ouvrir la base de données.
OriginalL'auteur mithlesh jha
comment ajouter enregistrer obtenir dans sqlite
ViewController.h
createdata
@property (forte, nonatomic) NSString *databasePath;
@property (nonatomic) sqlite3 *contactDB;
ViewController.m
savedata
}
OriginalL'auteur Mithun R
.h
OriginalL'auteur sasidharan.M
Vous pouvez utiliser ma bibliothèque, LabQLite. Il a vraiment une façon pratique de la connexion/l'ouverture/la fermeture d'un SQLite 3 base de données pour vous, le tout encapsulé dans un objet-orienté sentir.
J'ai également créé un générateur de modèle de l'outil que vous pouvez utiliser pour obtenir des classes qui représentent vos tables/vues dans le SQLite 3 de la base de données. Dit les classes seraient immédiatement utilisable avec LabQLite: https://github.com/jmbarnardgh/labqlite_model_generator
OriginalL'auteur Jacob Barnard