[SOCPB 2006] Projet # 1 : Rendre facile la gestion de MySQL

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

pour l'instant c'est juste une archive zip avec les .dll, les .lib, les .pbi nécessaires, et des examples pour tester le tout. tout le nécessaire 'client' ( par opposition à 'client' / 'serveur' ) est dans l'archive.

pour l'instant, rien de compilé, juste le source, j'attends toujours des testeurs et une version de tailbite autorisant les parametres optionnels et l'unicode.

bien sûr, il vous faut installer un serveur (postgresql) sur votre ordinateur sinon vous ne pourrez rien tester. le serveur postgresql se télécharge gratuitement sur le site officiel.
Image
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Juste pour dire que je suis sur le subsystem SQLite en ce moment (quand j'ai le temps de bosser dessus).
KarlKox m'a donné un coup de main - et je l'en remercie beaucoup.
Image
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

:wink:
"Qui baise trop bouffe un poil." P. Desproges
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

ce post m'interesse pour un projet qui traine dans mes cartons

Malheureusement

[Client]
50018
5.0.18
1013722C
[Error]
2003
HY000
Can't connect to MySQL server on 'localhost' (10061)

"libmysql.dll" du 28.12.05

patrick
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Là, c'est un peu vague comme erreur.

'Can't connect to MySQL server' implique plein de chose à vérifier de ton coté.

- via le connecteur ODBC classique et donc via les fonctions database de purebasic arrives-tu à te connecter ?

- as-tu bien précisé dans le source ton login et ton mot de passe correctement ?

- la base de données MySQL fonctionne-t-elle (en tant que service démarré ou exécutable dans la liste des processus windows) ?

- est-elle vraiment installée ? et si oui, est-elle en localhost ou distante ?

- les droits MySQL (coté serveur) sont ils bien configurés ?

- le port 3306 (en général) est il bien ouvert (cf. pare feu windows) sur le poste serveur et sur le poste client ?
Image
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

Flype a écrit :Là, c'est un peu vague comme erreur.
ah ! ? je vais tâcher de faire mieux la prochaine fois 8)
Flype a écrit :'Can't connect to MySQL server' implique plein de chose à vérifier de ton coté.

- via le connecteur ODBC classique et donc via les fonctions database de purebasic arrives-tu à te connecter ?
la MDB_Lib de reelmedia.org fonctionne sans problème
Flype a écrit :- as-tu bien précisé dans le source ton login et ton mot de passe correctement ?
ah euh non , mais c'est quoi mon login et mon mot de passe ???
Flype a écrit :- la base de données MySQL fonctionne-t-elle (en tant que service démarré ou exécutable dans la liste des processus windows) ?

- est-elle vraiment installée ? et si oui, est-elle en localhost ou distante ?

- les droits MySQL (coté serveur) sont ils bien configurés ?
gni ! m'sieur l'inspecteur c'est pô moi, jl'i jure...
Flype a écrit :- le port 3306 (en général) est il bien ouvert (cf. pare feu windows) sur le poste serveur et sur le poste client ?
là c'est un truc a ma portée je regarde... zut je me souviens plus du login et du pass de la livebox, faut que je fouille....

mais ça fait beaucoup de chose à savoir pour un utilisateur béta comme moi, c'est pas un reproche mais je trouve que l'utilisation de l'exemple de realmédia.org est ... plus simple, déja parce qu'il tourne sans bidouille...

je regarderai demain...

dodo

pat
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

@patrick88

Quelle bidouille ? Tu parles bien de MySQL ?

Si tu veux utiliser une base de données quelqu'elle soit (j'insiste sur le quelqu'elle soit) il faut une machine hote (host ou adresse ip) + un nom d'utilisateur + un mot de passe (genre 'localhost' + 'root' + 'toto' ).

En tout cas, de ce que je comprends, c'est que tu n'as pas compris ce qu'est une base de données type MySQL, PostgreSQL, Oracle.

La MDB_Lib n'est pas une lib pour se connecter à une base de ce genre.
Elle est faite pour se connecter à un fichier .mdb ( les fameux fichiers de MSAccess ) pas à MySQL.

Ma lib est faite pour se connecter à MySQL déjà installé - en principe sur un serveur - ou sur ton poste de développement en local (localhost).
Image
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

Okay ! je comprends..

pat
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

Flype a écrit :Juste pour dire que je suis sur le subsystem SQLite en ce moment (quand j'ai le temps de bosser dessus).
KarlKox m'a donné un coup de main - et je l'en remercie beaucoup.
Hello à tous, je relance un peu le post car je suis entrain de developper un petit programme pour un ami, et j'ai décidé de prendre la lib SQLite3 comme SGBD (via la lib PBOSL). En attendant que celle-ci soit plus étoffée grâce à Flype (merci à lui et les autres pour toutes leurs contributions), j'ai trouvé ce gestionnaire de bases de données SQLite fort interessant : http://sqliteadmin.orbmu2k.de/
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Flype a écrit :4/ Roadmap :

- Boucler le SubSystem MySQL - beta disponible.
- Continuer le SubSystem PostgreSQL - developpement en cours.
- Enchainer sur le SubSystem FireBird - j'ai déjà un wrapper fonctionnel.
- Obtenir un wrapper existant pour SQLite, qui sera le prochain SubSystem sur la liste.
- Explorateur de bases de données
- Trouver la solution aux multiples BD de type différents (>>Ici<<)
Pour infos, je m'attaque au wrapper / subsystem SQLite !
Dernière modification par Progi1984 le mar. 09/janv./2007 9:50, modifié 2 fois.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

SQLite lib

Code : Tout sélectionner

ExamineDatabaseDrivers()    ; implémenté
NextDatabaseDriver()        ; implémenté
DatabaseDriverName()        ; implémenté
DatabaseDriverDescription() ; implémenté
InitDatabase()              ; implémenté
DatabaseError()             ; implémenté
IsDatabase(a)               ; implémenté
CloseDatabase(a)            ; implémenté
OpenDatabaseRequester(a)    ; non implémenté
OpenDatabase(a, b) ; implémenté - nouvel argument
DatabaseRows(a)             ;implémenté
DatabaseColumns(a)          ;implémenté
DatabaseColumnName(a, b)    ; implémenté
DatabaseColumnType(a, b)    ; implémenté
DatabaseQuery(a, b)         ; implémenté
DatabaseUpdate(a, b)        ; implémenté
PreviousDatabaseRow(a)      ; implémenté
FirstDatabaseRow(a)         ; implémenté
NextDatabaseRow(a)          ; implémenté
GetDatabaseLong(a, b)       ; à faire
GetDatabaseQuad(a, b)       ; à faire
GetDatabaseFloat(a, b)      ; à faire
GetDatabaseDouble(a, b)     ; à faire
GetDatabaseString(a, b)     ; à faire
MAJ le 10/01/07
MAJ le 11/01/07
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

@Flype : voilà pour SQlite, les différents types de données sont entier (long), text(chaine), null, float et blob...

Comment as tu fait ou pourrais je faire pour GetDatabaseQuad(a, b) par exemple ?
- Cela ne renvoie rien
- Cela renvoie le meme contenu que getdatabaselong mais dans un quad
- Autrement

Et pour le blob, dois je créer un getdatabaseblob ?

Merci de ton aide !
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

je ne sais pas trop pour le moment - je suis complètement sur autre chose...

par contre attention aux BLOBs, ils ne peuvent pas etre stocké dans une chaine (string) puisque le caractere 0 peut bien sûr être dedans. Il faut donc un bloc mémoire (et laisser l'utilisateur libérer lui meme la mémoire). donc oui il fonction particulière pour ce type.

Je ne sais pas si tu as vu mais pour le connaitre le type d'un champs on peut aussi écrire la requete 'SELECT typeof('abc'+123)' qui renverra 'numeric' par ex.

sinon, qu'est le type CLOB ???

voir ici : http://www.sqlite.org/datatypes.html

par ailleurs, je ne sais pas si les quad sont supportés en fait (surement que si!).
Image
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Flype a écrit :je ne sais pas trop pour le moment - je suis complètement sur autre chose...
OK !
Flype a écrit :par contre attention aux BLOBs, ils ne peuvent pas etre stocké dans une chaine (string) puisque le caractere 0 peut bien sûr être dedans. Il faut donc un bloc mémoire (et laisser l'utilisateur libérer lui meme la mémoire). donc oui il fonction particulière pour ce type.
Je ne sais pas si tu as vu mais pour le connaitre le type d'un champs on peut aussi écrire la requete 'SELECT typeof('abc'+123)' qui renverra 'numeric' par ex.
Ok pour la fonction, j'y pensais ! Non, perso, une fonction de sqlite3 permet de récupérer son type ... sqlite3_column_type
Flype a écrit :sinon, qu'est le type CLOB ???

voir ici : http://www.sqlite.org/datatypes.html
Je ne connais pas du tt.
Flype a écrit :par ailleurs, je ne sais pas si les quad sont supportés en fait (surement que si!).
Non, ils ne le sont pas !
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

La V1 du Wrapper SQLIte est sorti. Allez voir >>Ici<<
Répondre