|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mars 2008 Messages : 10 ![]() |
Bonjour.
J'ai pas mal fouillé les faq, les tutoriels et les forums, mais je n'ai pas trouvé de réponse complète à ce que je recherche (les éléments trouvés m'ont cependant permis d'élaborer la solution sustitutive que j'expose ci-dessous) Précision : je travaille avec delphi 2005 et mysql.pas En fait je souhaite récupérer les données de mes tables pour faire une sauvegarde à l'aide d'une procédure générique. Pour cela, je cherche à récupérer le type des champs pour savoir si j'inclus dans le code un quotedstr ou non En fouillant un peu dans le code de mysql.pas, j'ai vu que le type mysql_field proposait une valeur ._type censée donner le type de champs selon un ensemble enum_field_types Lorsque j'ai essayé cette méthode, les valeurs retournées m'ont semblé inexploitables, car la valeur retournée est assez farfelue (par exemple, quelle que soit la table, le dernier champ retourne toujours 51 quel que soit le type de champ) J'ai également tenté d'utiliser les fonctions is_num, is_num_field, sans succès :o( J'ai donc utilisé le code suivant, qui me paraît un peu "barbare", en créant une fonction numtype renvoyant un boolean après comparaison avec un ensemble de valeur représentant un type numérique. Je suppose qu'il existe un autre moyen que d'extraire les informations de la colonne dans une requête pour comparer la valeur du champ type avec le référentiel au sein de la fonction numtype ? Quelqu'un aurait-il une solution plus élégante ? Je sais également qu'il existe mysqldump, mais la résolution de cette fonctionnalité constitue pour moi un très bon exercice pour (tenter de) m'améliorer (par ailleurs, le nombre d'option possible m'a un peu fait peur : ça a l'air assez complexe) Ensuite je vous interrogerai peut-être pour savoir comment faire pour exécuter un fichier contenant toutes les requêtes créées par ma fonction de sauvegarde afin de faire un restore (hormis parser le fichier jusqu'au prochain point virgule, je n'ai pas trouvé de solution toute faite pour exécuter une suite de requête rassemblée au sein d'un même fichier (mais je débute !)) Merci d'avance pour votre aide si précieuse ;o) Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Quelle version de MySQL utilises-tu ? Si c'est une version supérieure ou égale à la 5.0.2, tu peux utiliser une requête sur le catalogue MySQL (la base INFORMATION_SCHEMA). La table qui t'intéresse s'appelle INFORMATION_SCHEMA.COLUMNS, et le champ DATA_TYPE donne le type d'une colonne : Code :
ced |
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 10 ![]() |
merci pour ces renseignements
c'est la 5.0.5b, la dernière en titre je crois je ne m'étais pas encore intéressé à ces informations qui apparaissent par défaut lorsqu'on consulte les bases et les tables avec un gui je n'ai pas encore compris où ces tables sont stockées car je n'ai vu qu'une base mysql ... c'est créé dynamiquement sans doute ? je vais me pencher sur ce nouvel aspect de mysql yvan |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 10 ![]() |
sinon, la méthode que j'ai employée te paraît "orthodoxe" ?
y |
|
|
00
|
|
|
#5 | |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Citation:
Avec la commande SHOW, ça reste les deux moyens les plus "orthodoxes" d'obtenir des informations sur une base de données ced |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com