Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > SQLite
SQLite Forum d'entraide SQLite
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/11/2006, 22h59   #1
Membre habitué
 
Avatar de tintin72
 
Inscription : septembre 2003
Messages : 595
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 595
Points : 123
Points : 123
Par défaut sqlite3_open, comment ça marche ?

Bonjour,

Je débute avec sqlite que j'essaie d'interfacer dans mon appli en C/C++.
Mais je ne comprend pas la fonction sqlite3_open.
Si je me réfère à l'exemple en C du site sqlite.org
Code :
1
2
3
4
5
6
7
 
rc = sqlite3_open("myDataBase", &db);
  IF( rc ){
    fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
    sqlite3_close(db);
    exit(1);
  }
cela ne retourne jamais le message d'erreur lorsque par ex le nom de la bd n'est pas bon.
A la place sqlite3_open m'en créé une.
Le problème c'est que je ne veux pas que sqlite créé une nouvelle bd.
Je veux qu'il ouvre la bd si elle existe ou alors qu'il me retourne le message d'erreur.
Est ce que quelqu'un pourrait m'expliquer comment faire ?

Merci
tintin72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2007, 21h54   #2
Invité régulier
 
Inscription : janvier 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 11
Points : 9
Points : 9
Salut,

Mon message ne t'aidera certainement pas, mais au moins je pourrais t'apporter un peu de soutien moral...

J'essaie d'utiliser l'API Perl pour me connecter à une base SQLite (qui répond très bien avec la ligne de commande) et j'ai le même problème que toi.
- Il me créé une base vide
- Ne me renvoie pas le message d'erreur attendu en cas d'échec.

On doit faire la même erreur. Réfléchissons...

Pour info, voici mon code:

my $Requete;
my $dbh = DBI->connect("dbi:SQLite:dbname=BaseTest.db","","")
or die ("Impossible de se connecter a la base\n ERREUR = $DBI::errstr\n");

Si un perleur a une idée, je l'écouterais volontiers. En attendant, au boulot!
vincbruv est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 16h26   #3
Membre du Club
 
Inscription : juillet 2006
Messages : 66
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 66
Points : 50
Points : 50
même problème ici, je n'ai toujours pas la réponse !
SERTNM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2007, 22h14   #4
Invité régulier
 
Inscription : janvier 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 11
Points : 9
Points : 9
Il semblerait que lorsque SQLite ne parvient pas à ouvrir la base demandée (certainement parce qu'elle n'existe pas...), il en créé une portant le nom passé en paramètre.



Par exemple, voici mon code Perl (qui marche ):

my $LaBase = 'BaseTest.db';
my $dbh = DBI->connect('dbi:SQLite:dbname='.$LaBase,
"",
"",
{RaiseError => 1,
AutoCommit => 1})
or die ("Impossible de se connecter a la base\n ERREUR = $DBI::errstr\n");
print("Connexion a la base $dbh... OK\n");

En espèrant que ça aidera...
vincbruv est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h16.


 
 
 
 
Partenaires

Hébergement Web