Salut
Je sais faire mes requetes sql dans d autres utilisations
Je voudrais savoir comment tout celà fonctionne
Faut il utiliser les composants de dbexpress ?
Une petit exemple tout simple serait le bienvenu
merci d avance
Version imprimable
Salut
Je sais faire mes requetes sql dans d autres utilisations
Je voudrais savoir comment tout celà fonctionne
Faut il utiliser les composants de dbexpress ?
Une petit exemple tout simple serait le bienvenu
merci d avance
Bonsoir,
Et bien, je ne sais pas si cela peut te répondre correctement mais personnellement j'ai utilisé les objets tels que TQuery (dans la palette 'BDE') mais beaucoup beaucoup de gens apparemment utilisent les composants DBExpress, c'est sur.
@ + :wink:
salut tou dépend quelle base de donnée tu utilises
-Paradox -> composants BDE
-Autres -> DBExpress
avec TSQLConnection pour choisir la base de donnée (mysql ,oracle,...) et le nom de cette base
TSQLTAble pour chosir la table
TSQLQuery pour faire les requêtes
Puis touours un TDataSource pour récupérer par exemple les valeurs corresondant à une requete
ok merci
parcontre
est ce que vous avez modifié le fichier sql.h ?
dans les parametres de connexion , où rentrer le port ?
salut
le TDatasource ne se trouve pas dans les composants DBExpress
je ne sais plus trop ou il se trouve (c'est un onglet qui a rapport avec les bases de données). Désolé j'ai pas builder ici
et je n'ai jamais touché a sql.h
j ai trouvé
c dans accessDb
parcontre pour le port ?
Le TDataSource est dans la palette 'AccèsDB', et moi non plus je n'ai pas eu a modifié ce fichier.Citation:
Envoyé par Cybher
++
quand je teste la connexion à partir de la fenetre du composant
j obtiens une erreur avec
connexion impossible : impossible de charger libmysql.dll
Il faut ensuite créer la librairie libmySQL.lib par la commande suivante, exécutée dans une console : implib libmySQL.lib libmySQL.dll
La libraire ainsi créée doit être ajoutée au projet
comment faire ?
salut
logiquement si tu utlises les composant DBexpress tu as juste beoin de libmysql.dll que tu copies à l'endroit ou se situe ton projet.
est ce que vous avez ces fichiers dans le repertoire include
my_alloc.h
mysql_com.h
mysql_version.h
salut
désolé de ne pas pouvoir te répondre, mais 'ai fait cel pendant un stage qui est terminé et je ne pourrais pas te répondre.
Tu as toujours des problèmes de connexion?
En ajoutant juste la librairie logiquement il n'y a pas de priblème.
pas moyen meme le test echoue
tu sais pas où rentrer le port ?
Je suis obbligé de preciser 3306 pour que ca passe
quel test?
quand tu cliques sur le composant connection pour le parametrer
tu as egalement la possibilite de tester ta connection
parcontre
tu mets quoi en include ?
je suis un gros nase
j avais pas ajouté au projet la dll qui etait presente dans le repertoire
merci de votre aide
pour les includes , je mets quoi au fait ?
salut
si mes souvenirs ont bon il y a juste le mysql.h
mais pas sur du tout (je confon peut etre avec la connection avec l'api)
apres cet include il me dit que ces fichiers sont manquants
mysql_com.h
mysql_version.h
je me suis debrouillé pour les trouver sur le net
apres tentative de compilation
j ai une erreur
[C++ Erreur]mysql_com.h(118):E2303 Nom de type attendu
[C++ Erreur]mysql_com.h(118):E2139;manquant dans la declaration
qui correspond à ceci dans le fichier mysql_com.h
my_socket fd; /*For Perl DBI/dbd */
salut
esai de mettre dans ton projet le dossier include de mysql qui contient ces dossiers. tu rajoute juste ce doosier dans ton projet ou peut etre le contenu de ce dossier dans le répertoire de ton projet
le probleme c est que je veux utiliser une base de donnée distante
je ne peux avoir acces à ce repertoire
v essayer d installer sql sur le pc pour recup les fichiers
salut,
il me semble avoir confondu avec l'api mysql
si tu utilises les composants DBExpress, enleve l'include mysql.h
si ce la peut t'aider :
http://www.developpez.net/forums/vie...tsqlconnection
je v tester
je te remercie pour toute l aide amenée jusqu ici
apperemment avec les fichiers specifiques à borland , ca fonctionne
parcontre peux tu me decrire la maniere de formuler une requete avec borland depuis l initialisation de la connection jusqu au traitement sur le form ?
prenons un exemple tout simple
user cedni
pass 123456
port 678
serveur www.mabase.fr
base mabase
disons que je veux recuperer toutes les valeurs du champ nom par ordre croissant où le champ genre = homme et les stocker dans un memoCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 CREATE TABLE test ( nom text NOT NULL, prenom text NOT NULL, age int(2) NOT NULL default '0', ville int(5) NOT NULL default '0', genre text NOT NULL ) TYPE=MyISAM; # # Contenu de la table `test` # INSERT INTO test VALUES ('gub','nico',27,34800,'homme'); INSERT INTO test VALUES ('nieb','ced',29,62950,'homme'); INSERT INTO test VALUES ('rata','stan',25,62800,'homme'); INSERT INTO test VALUES ('taillez','ludi',28,62800,'femme');
salut
procède par étape:
- met ton TSQLConnection avec ces propriétés et passe le a Active
- si sa marche met un TSQLQuery et écrit ta requête dedans plus les propriétés nécessaires
- met un Datsource et essai de récupérer té resultat (au dépar fé juste un echo de tes résulta pour le memo fodra voir après)
si t as des problèmes indique les
(je précise que j'ai jamais fait de connexion distante don sur ce pt je pourrais pas t'aider)
bon courage
il y a meme pas de tuto en anglais sur le net
c obsolete b6 ou quoi ?
copier dans repertoire
libmySQL.dll et libmySQL.lib ( ajoutée au projet )
modif un fichier sql.h recuperé dans une version windows de sql
Dans le fichier d'en-tête mySQL.h, j'ai du effectuer la modification suivante au niveau de la ligne 34:
#ifdef __LCC__
#include <winsock.h> /* For windows */
#endif
devient
#if ( defined(__LCC__) || defined(__WIN__) )
#include <winsock.h> /* For windows */
#endif
( du tuto de LFE , http://lfe.developpez.com/BCBmySQL/ )
Code:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #define __WIN__ #include "mysql.h" #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::testconnectionClick(TObject *Sender) { MYSQL *mySQL; mySQL = mysql_init(NULL); if (!mysql_real_connect(mySQL, "www.freesql.org", "cednieb", "123456", "cedtest",3306, NULL, 0)) { Memo1->Clear(); Memo1->Lines->Add("echec"); // la connection a échoué } else { Memo1->Clear(); Memo1->Lines->Add("ok"); // la connection a réussi } mysql_close(mySQL); } //--------------------------------------------------------------------------- void __fastcall TForm1::listertableClick(TObject *Sender) { MYSQL *mySQL; mySQL = mysql_init(NULL); if (!mysql_real_connect(mySQL, "www.freesql.org", "cednieb", "123456", "cedtest",3306, NULL, 0)) { Memo1->Clear(); Memo1->Lines->Add("echec"); // la connection a échoué } else { Memo1->Clear(); Memo1->Lines->Add("ok"); // la connection a réussi } MYSQL_ROW myROW; MYSQL_RES *myRES; AnsiString aStr; myRES = mysql_list_tables(mySQL, NULL); if (myRES) { for(unsigned int i = 0; i < myRES->row_count; i++) { myROW = mysql_fetch_row(myRES); for(unsigned int j = 0; j < mysql_num_fields(myRES); j++) { aStr.sprintf("%s", myROW[j]); ListBox1->Items->Add(aStr); } } mysql_free_result(myRES); } mysql_close(mySQL); } //--------------------------------------------------------------------------- void __fastcall TForm1::listerdonneesClick(TObject *Sender) { MYSQL *mySQL; mySQL = mysql_init(NULL); if (!mysql_real_connect(mySQL, "www.freesql.org", "cednieb", "123456", "cedtest",3306, NULL, 0)) { Memo1->Clear(); Memo1->Lines->Add("echec"); // la connection a échoué } else { Memo1->Clear(); Memo1->Lines->Add("ok"); // la connection a réussi } MYSQL_ROW myROW; MYSQL_RES *myRES; AnsiString aStr; if (!mysql_query(mySQL, "select * from test")) { myRES = mysql_store_result(mySQL); if (myRES) { for(unsigned int i = 0; i < myRES->row_count; i++) { myROW = mysql_fetch_row(myRES); for(unsigned int j = 0; j < mysql_num_fields(myRES); j++) { aStr = myROW[j]; ListBox1->Items->Add(aStr); } } mysql_free_result(myRES); } } mysql_close(mySQL); } //---------------------------------------------------------------------------
Là tout fonctionne
parcontre comment faire dans ce cas precis pour definir le serveur une fois pour toute ?
merci à toi , c est vraiment sympa de m avoir aidé
donc finalement tu as utilisé l'API. c'est vrai que la il y a au moins un exemple.
par contre je crois que tu seras obligé de définir la connexion à chaque fois.