IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement iOS Discussion :

Probleme de creation bdd SQLite


Sujet :

Développement iOS

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 86
    Points : 67
    Points
    67
    Par défaut Probleme de creation bdd SQLite
    Bonjour j'essaye de rattaché une base de données Sqlite à mon application cependant la bdd ne se crée jamais j'ai essayé de debugger sans succes ..
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    //Le fichier .h
    
    
    #import <UIKit/UIKit.h>
    #import <sqlite3.h>
    
    @interface MyTestViewController : UIViewController
    
    @property (strong, nonatomic) IBOutlet UILabel *lbStatus;
    @property (strong, nonatomic) IBOutlet UITextField *txtMessage;
    - (IBAction)btSave:(id)sender;
    
    @property(strong, nonatomic) NSString *databasePath;
    
    @property(nonatomic) sqlite3 *mytest;
    @end



    Le fichier .m

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    	
        NSString *docsDir;
        NSArray *dirPaths;
        
        // Get the documents directory
        dirPaths = NSSearchPathForDirectoriesInDomains(
                                                       NSDocumentDirectory, NSUserDomainMask, YES);
        
        docsDir = dirPaths[0];
        
        
        _databasePath = [[NSString alloc]
                         initWithString: [docsDir stringByAppendingPathComponent:
                                          @"mytest.db"]];
        
        NSFileManager *filemgr = [NSFileManager defaultManager];
        
      
        if ([filemgr fileExistsAtPath: _databasePath ] == NO)
        {
            const char *dbpath = [_databasePath UTF8String];
            
            if (sqlite3_open(dbpath, &_mytest) == SQLITE_OK)
            {
                char *errMsg;
                const char *sql_stmt =
                "CREATE TABLE UsrMess(ID INTEGER, Message VARCHAR, DateMsg datetime)";
                
                if (sqlite3_exec(_mytest, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK)
                {
                    _lbStatus.text = @"erreur creation table";
                }
                else
                {
                    _lbStatus.text = @"table cree";
                }
                sqlite3_close(_mytest);
            }
            else
            {
                _lbStatus.text = @"Erreur ";
            }
        }
    Si vous avez des idées du bug ou des pistes de recherches je suis preneur

    Je vous remercie

  2. #2
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    Salut,

    Déjà, as-tu tester ta commande de création de base dans un terminal ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlite3 mytest.db "CREATE TABLE UsrMess(ID INTEGER, Message VARCHAR, DateMsg datetime);"
    Sinon, tu peux trouver des exemples de code :

    Code objective-C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) 
        {
            NSLog(@"Opened sqlite database at %@", databasePath);
     
            char *err; 
            NSString *sql = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('%@' TEXT PRIMARY KEY, '%@' TEXT);", tableName, dbStrStore, dbStrReg];
            if (sqlite3_exec(database, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK) 
            { 
                sqlite3_close(database);
                NSAssert(0, @"Table failed to create.");
            }
            //...stuff
        } 
        else 
        {
            NSLog(@"Failed to open database at %@ with error %s", databasePath, sqlite3_errmsg(database));
            sqlite3_close (database);
        }

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 86
    Points : 67
    Points
    67
    Par défaut
    Merci K0rt3x pour ta reponse,

    en effet j'ai tester la creation par ligne de commande et cela marche bien,
    je pense que mon probleme doit être Xcode j'ai recrée un projet tout simple avec seulement la creation de bdd et cela ne marche toujours pas et pas d'exception ni rien .. la library ajouté est libsqlite3.dylib

    y'aurait-il une raison que cela marche en ligne de commande et pas dans le code ?

  4. #4
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    Citation Envoyé par ppost Voir le message
    Merci K0rt3x pour ta reponse,

    en effet j'ai tester la creation par ligne de commande et cela marche bien,
    je pense que mon probleme doit être Xcode j'ai recrée un projet tout simple avec seulement la creation de bdd et cela ne marche toujours pas et pas d'exception ni rien .. la library ajouté est libsqlite3.dylib

    y'aurait-il une raison que cela marche en ligne de commande et pas dans le code ?
    As-tu tester en prennant exemple sur ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) 
        {
            NSLog(@"Opened sqlite database at %@", databasePath);
    
            char *err; 
            NSString *sql = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('%@' TEXT PRIMARY KEY, '%@' TEXT);", tableName, dbStrStore, dbStrReg];
            if (sqlite3_exec(database, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK) 
            { 
                sqlite3_close(database);
                NSAssert(0, @"Table failed to create.");
            }
            //...stuff
        } 
        else 
        {
            NSLog(@"Failed to open database at %@ with error %s", databasePath, sqlite3_errmsg(database));
            sqlite3_close (database);
        }

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 86
    Points : 67
    Points
    67
    Par défaut
    Effectivement ce code marche et jai pas compris le probleme avec le precedent en tout cas merci beaucoup !

  6. #6
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    Sûrement une histoire de chaîne de caractères...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de creation d'une table apres creation de la bdd
    Par adissa357 dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 02/10/2013, 01h33
  2. [1.x] probleme de creation de bdd
    Par lamouche42 dans le forum Débuter
    Réponses: 3
    Dernier message: 27/09/2011, 13h57
  3. Probleme de creation d'une BDD avec SQL server 2005 et vista
    Par necer_cheniki dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 22/06/2008, 10h15
  4. [LG]probleme de creation arbre binaire
    Par jsaviola dans le forum Langage
    Réponses: 2
    Dernier message: 06/01/2004, 20h57
  5. [Classpath] problème de création de setclasspath.bat
    Par worldchampion57 dans le forum Général Java
    Réponses: 7
    Dernier message: 06/05/2003, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo