SqLite3
SqLite3
Bonjour à tous
Je viens tout juste d'acheter cet excellent produit qu'est PB et désirant créer une petite appli perso avec bdd, j'ai parcouru et cherché quelques indices dans le forum, mais sans succès, pour me permettre de mettre en oeuvre Sqlite3.
J'ai donc téléchargé 'sqlite3_userlib.zip' d'El Choni ainsi que 'sqlite-3_2_7.zip' du site Sqlite.
J'ai copié 'Sqlite3' (sans extension) dans \PureBasic\PureLibraries\UserLibraries\.
J'ai souhaité tester l'exemple d'accompagnement 'sqlite3_test.pb' mais celui-ci me donne un message d'erreur 'Line 11 - SQLite3_InitLib() is not a function, an array or a linked list'. Le contenu du prog fait appel à 'Sqlite3.dll' que je n'ai pas.
J'avoue être un peu déconcerté mais je suis persuadé ne pas avoir bien fait le nécessaire pour que cela fonctionne, faute d'information (mal cherchée, peut-être).
J'ai parcouru le fichier d'aide, et à part l'ODBC que je veux éviter d'employer, aucune piste concernant SQLite et son utilisation.
Alors si l'un d'entre vous avait la gentillesse de m'expliquer brièvement ou me rediriger vers une aide quelconque permettant la mise en oeuvre de sqlite3, cela serait grandement apprécié de ma part.
Mille mercis d'avance pour votre aide et votre compréhension.
Je viens tout juste d'acheter cet excellent produit qu'est PB et désirant créer une petite appli perso avec bdd, j'ai parcouru et cherché quelques indices dans le forum, mais sans succès, pour me permettre de mettre en oeuvre Sqlite3.
J'ai donc téléchargé 'sqlite3_userlib.zip' d'El Choni ainsi que 'sqlite-3_2_7.zip' du site Sqlite.
J'ai copié 'Sqlite3' (sans extension) dans \PureBasic\PureLibraries\UserLibraries\.
J'ai souhaité tester l'exemple d'accompagnement 'sqlite3_test.pb' mais celui-ci me donne un message d'erreur 'Line 11 - SQLite3_InitLib() is not a function, an array or a linked list'. Le contenu du prog fait appel à 'Sqlite3.dll' que je n'ai pas.
J'avoue être un peu déconcerté mais je suis persuadé ne pas avoir bien fait le nécessaire pour que cela fonctionne, faute d'information (mal cherchée, peut-être).
J'ai parcouru le fichier d'aide, et à part l'ODBC que je veux éviter d'employer, aucune piste concernant SQLite et son utilisation.
Alors si l'un d'entre vous avait la gentillesse de m'expliquer brièvement ou me rediriger vers une aide quelconque permettant la mise en oeuvre de sqlite3, cela serait grandement apprécié de ma part.
Mille mercis d'avance pour votre aide et votre compréhension.
Merci Coolman
Bonsoir Coolman et grand merci d'avoir pris le temps de me répondre.
Néanmoins, à mon grand regret, je suis vraiment obtus quant à l'utilisation de ces librairies.
J'ai bien une quantité de fichiers (sans extension) nommés PBOSL_quelque chose, je les ai copié dans le répertoire PureBasic\PureLibraries\UserLibraries, mais ça ne marche pas, j'ai le même message d'erreur citée dans le premier post lorsque je teste l'exemple sqlite3_test.pb
Je viens de chercher quelques infos sur comment installer ces librairies, je ne trouve pas d'explication pour aider le noob que je suis. Rien nulle part que me dise brièvement où installer les fichiers et ce qui me manque pour que ça tourne. Je n'ai jamais travaillé avec des librairies externes alors je suis un peu perdu (voir totalement même).
Je ne veux pas abuser de ton temps et de celui des autres membres, je comprends que ce genre de question n'a rien d'intéressant pour les expérimentés que vous êtes. Je compte toutefois modestement sur votre compréhension pour me lancer enfin.
Merci encore et au plaisir
Néanmoins, à mon grand regret, je suis vraiment obtus quant à l'utilisation de ces librairies.
J'ai bien une quantité de fichiers (sans extension) nommés PBOSL_quelque chose, je les ai copié dans le répertoire PureBasic\PureLibraries\UserLibraries, mais ça ne marche pas, j'ai le même message d'erreur citée dans le premier post lorsque je teste l'exemple sqlite3_test.pb
Je viens de chercher quelques infos sur comment installer ces librairies, je ne trouve pas d'explication pour aider le noob que je suis. Rien nulle part que me dise brièvement où installer les fichiers et ce qui me manque pour que ça tourne. Je n'ai jamais travaillé avec des librairies externes alors je suis un peu perdu (voir totalement même).
Je ne veux pas abuser de ton temps et de celui des autres membres, je comprends que ce genre de question n'a rien d'intéressant pour les expérimentés que vous êtes. Je compte toutefois modestement sur votre compréhension pour me lancer enfin.
Merci encore et au plaisir
En principe, il n'y a pas de difficulté à installer une lib utilisateur.
Il faut metter les fichiers sans extension dans le dossier UserLibraries, les fichiers avec l'extension .res (si il y en a), dans le dossier Residents, et de relancer la compilateur, soit en redémarrant l'éditeur, soit en utilisant la commande "Compilateur\Redémarrer le compilateur" pour l'éditeur de PB ou "Projet\Redémarrer le compilateur" pour jaPBe.
Après, à toi d'utiliser la lib correctement en faisant appel au fichier d'aide, si il y en a un.
"Fonction()" is not a function, an array or a linked list' apparait quand le compilo ne reconnait pas la fonction, ce qui veut dire que ta lib n'est pas correctement installée.
Il faut metter les fichiers sans extension dans le dossier UserLibraries, les fichiers avec l'extension .res (si il y en a), dans le dossier Residents, et de relancer la compilateur, soit en redémarrant l'éditeur, soit en utilisant la commande "Compilateur\Redémarrer le compilateur" pour l'éditeur de PB ou "Projet\Redémarrer le compilateur" pour jaPBe.
Après, à toi d'utiliser la lib correctement en faisant appel au fichier d'aide, si il y en a un.
"Fonction()" is not a function, an array or a linked list' apparait quand le compilo ne reconnait pas la fonction, ce qui veut dire que ta lib n'est pas correctement installée.
C'est vrai apres avoir verifié qu'il n'y a pas de doc explicite dans le fichier zip des libs, cela dit, lors de la decompression, une arborescence est creé similaire a celle du rep de purebasic, il suffit donc de copier les fichiers et de les copier dans le repertoire de purebasic en respectant le nom des repertoires... sinon la methode brutal, copier le repertoire purebasic de l'archive zip dans le repertoire de purebasic, je ne sais pas si je suis clair la...
Apres ca, ne pas oublier d'executer les fichiers *.bat se trouvant dans les reps
UserLibraries et Residents
C'est important pour eliminer les libs qui pourraient entrer en conflit avec les libs de PBOSL. il faut savoir que plusieurs libs ont etees integrees a PBOSL sous un autre nom...
Pour info la dll de sqlite3 est directement integré dans l'executable generé par purebasic, cette dll est meme apparement compressé avec upx. lors de l'execution de l'exe, la fonction LoadLibrary permet de decompresser la dll de sqlite en memoire et d'utiliser ces fonctions, ce qui fait qu'il est desormais possible de beneficier d'une base de donnéé pro (sqlite 3) et de generer un exe de moins de 150 ko tout compris...
Pour plus d'info, telecharge egallement les sources de PBOSL qui sont tres instructifs...
voila voila
Apres ca, ne pas oublier d'executer les fichiers *.bat se trouvant dans les reps
UserLibraries et Residents
C'est important pour eliminer les libs qui pourraient entrer en conflit avec les libs de PBOSL. il faut savoir que plusieurs libs ont etees integrees a PBOSL sous un autre nom...
Pour info la dll de sqlite3 est directement integré dans l'executable generé par purebasic, cette dll est meme apparement compressé avec upx. lors de l'execution de l'exe, la fonction LoadLibrary permet de decompresser la dll de sqlite en memoire et d'utiliser ces fonctions, ce qui fait qu'il est desormais possible de beneficier d'une base de donnéé pro (sqlite 3) et de generer un exe de moins de 150 ko tout compris...
Pour plus d'info, telecharge egallement les sources de PBOSL qui sont tres instructifs...
voila voila
Lorsqu'il y a un conflit entre 2 librairies, c'est soit sur des constantes prédéclarées qui auraient le même nom qu'une constante de Pure ou d'une autre lib utilisateur mais avec une valeur différente (d'ailleurs, je l'ai signalé, même si la constante a la même valeur on a une erreurCoolman a écrit :
C'est important pour eliminer les libs qui pourraient entrer en conflit avec les libs de PBOSL. il faut savoir que plusieurs libs ont etees integrees a PBOSL sous un autre nom...

Dans les cas de figure ci-dessus, on est averti par le compilateur
L'erreur de JiheL indique qu'il ne connait pas la commande, celà veut dire que
soit la librairie n'est pas dans le dossier PureBasic, soit si elle y est, c'est que la dll n'est pas dans le dossier PureBasic\Compilers
JiheL, dézippe le zip de El_Choni
Dans le dossier qu'il t'a créé, trouve le dossier PureBasic\PureLibraries
Copie le fichier sans extension qui s'y trouve (SQLite) dans le dossier PureBasic\PureLibraries\UserLibraries\
Téléchare la dll ici (indiqué sur le site Purearea) http://purearea.net/pb/download/userlibs/sqlitedll.zip
dézippe et installe la dll dans le dosssier PureBasic\Compilers
Les 2 fichiers d'aide sont au format txt, donc il ne s'ouvriront pas dans purebasic, à ouvrir dans un éditeur quelquonque
Oui, sauf que JiheL n'a pas installé la suite PBOSL, il a téléchargé la lib de El_Choni depuis Purearea et j'ai fait comme lui et j'ai eu la même erreur, j'ai pensé tout de suite à la dll et ça a marché ensuite.Coolman a écrit :Avec PBOSL et concernant sqlite 3, pas besoin de dll, elle est integré a la lib PBOSL_sqlite3 et directement a l'executable generé par purebasic...
Maintenant je suis d'accord avec toi, c'est mieux avec PBOSL_sqlite3
Re: Merci Coolman
Bon, je crois que tu as raté ca denisJiheL a écrit :Bonsoir Coolman et grand merci d'avoir pris le temps de me répondre.
Néanmoins, à mon grand regret, je suis vraiment obtus quant à l'utilisation de ces librairies.
J'ai bien une quantité de fichiers (sans extension) nommés PBOSL_quelque chose, je les ai copié dans le répertoire PureBasic\PureLibraries\UserLibraries, mais ça ne marche pas, j'ai le même message d'erreur citée dans le premier post lorsque je teste l'exemple sqlite3_test.pb
Je viens de chercher quelques infos sur comment installer ces librairies, je ne trouve pas d'explication pour aider le noob que je suis. Rien nulle part que me dise brièvement où installer les fichiers et ce qui me manque pour que ça tourne. Je n'ai jamais travaillé avec des librairies externes alors je suis un peu perdu (voir totalement même).
Je ne veux pas abuser de ton temps et de celui des autres membres, je comprends que ce genre de question n'a rien d'intéressant pour les expérimentés que vous êtes. Je compte toutefois modestement sur votre compréhension pour me lancer enfin.
Merci encore et au plaisir

Merci à tous
Bonjour tout le monde
Un très grand merci pour vos interventions, j'apprécie vivement.
Désolé pour le temps que je vous fais perdre.
J'ai donc installé les PBOSL comme cité plus haut.
J'ai tenté d'appréhender le fonctionnement de ces librairies en écrivant ceci :
Je suppose que je dois confondre l'utilité des commandes. Dois-je me servir des commandes PB et des commandes PBOSL ensemble ?
Afin d'éviter de vous ennuyer davantage avec mes questions noob, connaissez-vous un exemple de fonctionnement avec Sqlite3 que je puisse consulter quelque part pour clarifier le mode de fonctionnement ?
Je vous remercie encore vivement de votre aide, je souhaite progresser davantage dans ce sens pour parvenir à exploiter cette bdd.
A+
Un très grand merci pour vos interventions, j'apprécie vivement.
Désolé pour le temps que je vous fais perdre.
J'ai donc installé les PBOSL comme cité plus haut.
J'ai tenté d'appréhender le fonctionnement de ces librairies en écrivant ceci :
Le débogueur me signale un erreur 'Invalid memory access' sur la ligne rouge.If OpenLibrary(0,"sqlite3.dll")
sDatabase.s = "toto"
bolOverwrite.l = false
SQLite3_CreateDatabase(sDataBase.s, bolOverwrite.l)
EndIf
Je suppose que je dois confondre l'utilité des commandes. Dois-je me servir des commandes PB et des commandes PBOSL ensemble ?
Afin d'éviter de vous ennuyer davantage avec mes questions noob, connaissez-vous un exemple de fonctionnement avec Sqlite3 que je puisse consulter quelque part pour clarifier le mode de fonctionnement ?
Je vous remercie encore vivement de votre aide, je souhaite progresser davantage dans ce sens pour parvenir à exploiter cette bdd.
A+
J'ai essayé ton code, ca fonctionne sans message d'erreur avec purebasic 3.94, je tiens a preciser tout de suite que je n'ai pas encore essayé d'utiliser dans la pratique sqlite 3 avec purebasic par manque de temps (pour les base de donnee, j'utilise plutot windev), l'exemple livre avec PBOSL fonctionne tres bien pour ma part, et si tu suis les messages des autres posteurs concernant la dll de sqlite 3, ca fonctionne egallement avec la lib d'elchoni, donc je ne sais quoi te dire. le probleme, c'est que si tu ne comprend pas l'anglais, tu n'iras pas tres loin en informatique car toute la doc est dans cette langue...
Je reeitere ma config fonctionnelle :
windows 98 se
purebasic 3.94 (met a jour si tu n'as pas cette version)
lib PBOSL
A mon avis, reinstalle la version 3.94, la lib PBOSL, et reessaie...
il y'a des exemples sur le forum anglais de purebasic concernant sqlite 3 avec le code source, fais des recherches...
Je reeitere ma config fonctionnelle :
windows 98 se
purebasic 3.94 (met a jour si tu n'as pas cette version)
lib PBOSL
A mon avis, reinstalle la version 3.94, la lib PBOSL, et reessaie...
il y'a des exemples sur le forum anglais de purebasic concernant sqlite 3 avec le code source, fais des recherches...
Grand merci
Bonjour à tous
Je vous adresse un vif remerciement pour votre aide et votre compréhension.
Grâce à vos suggestions, ça marche !
J'ai réinstallé PB 3.94 et la PBOSL, j'avais omis d'exécuter les fichiers .bat des 2 répertoires. Depuis ça tourne impecc !
Donc depuis, j'avale du PB et SQLite.
Plus qu'à apprendre à gérer les fenêtres et comprendre le MDI, et ça devrait l'faire. C'est loin du basic que j'ai appris dans mon 'jeune temps'...
Merci encore à vous tous et bon week-end
Je vous adresse un vif remerciement pour votre aide et votre compréhension.
Grâce à vos suggestions, ça marche !
J'ai réinstallé PB 3.94 et la PBOSL, j'avais omis d'exécuter les fichiers .bat des 2 répertoires. Depuis ça tourne impecc !
Donc depuis, j'avale du PB et SQLite.
Plus qu'à apprendre à gérer les fenêtres et comprendre le MDI, et ça devrait l'faire. C'est loin du basic que j'ai appris dans mon 'jeune temps'...
Merci encore à vous tous et bon week-end