SqLite3

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
JiheL
Messages : 6
Inscription : mar. 04/oct./2005 8:31

SqLite3

Message par JiheL »

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.
Coolman
Messages : 432
Inscription : sam. 01/janv./2005 16:07

Message par Coolman »

Utilise la lib PBOSL

http://pbosl.purearea.net/index.php?site=News

Il y'a tout ce qu'il faut...
JiheL
Messages : 6
Inscription : mar. 04/oct./2005 8:31

Merci Coolman

Message par JiheL »

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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

il a oublié de te dire que les fichiers chm doivent etre mis dans le dossier "HELP" ! :D
Coolman
Messages : 432
Inscription : sam. 01/janv./2005 16:07

Message par Coolman »

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
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Coolman 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...

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 erreur :cry: ) soit entre les noms de commandes qui pourraient être identiques.

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
Coolman
Messages : 432
Inscription : sam. 01/janv./2005 16:07

Message par Coolman »

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...
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

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...
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.

Maintenant je suis d'accord avec toi, c'est mieux avec PBOSL_sqlite3
Coolman
Messages : 432
Inscription : sam. 01/janv./2005 16:07

Re: Merci Coolman

Message par Coolman »

JiheL 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
Bon, je crois que tu as raté ca denis 8)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Oauis je crois :D
Patix
Messages : 102
Inscription : ven. 19/nov./2004 14:17

Message par Patix »

J'ai eu le même soucis et c'est parce que la dll fournit avec les prog n'est pas la bonne version. Réessaie de télécharger sqlite3.dll ailleurs :-).
JiheL
Messages : 6
Inscription : mar. 04/oct./2005 8:31

Merci à tous

Message par JiheL »

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 :
If OpenLibrary(0,"sqlite3.dll")
sDatabase.s = "toto"
bolOverwrite.l = false
SQLite3_CreateDatabase(sDataBase.s, bolOverwrite.l)
EndIf
Le débogueur me signale un erreur 'Invalid memory access' sur la ligne rouge.
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+
Coolman
Messages : 432
Inscription : sam. 01/janv./2005 16:07

Message par Coolman »

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...
JiheL
Messages : 6
Inscription : mar. 04/oct./2005 8:31

Grand merci

Message par JiheL »

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
Répondre