Bonjour,
MySQL(mariadb)
j'ai une table avec une clé de a 8 chiffres ex 06336633,00687580,10025536
query(idDB,"select * from matable;")
puis un While NextDatabaseRow(idDB)
une boucle i sur les Fields
et je teste pour afficher les champs de ma table
Select DatabaseColumnType(idDB,i)
Case #PB_Database_Long
ligne + FormatNumber(GetDatabaselong(idDB,i),2,","," ")+varsep
Case #PB_Database_String
ligne + GetDatabaseString(idDB,i)+varsep
etc..…
dans ce test ma clé qui est un char(8) est reconnu par datacolumntype comme un #PB_Database_Long
avez vous une idée de pourquoi ce résultat ????
Merci
DatabaseColumnType
Re: DatabaseColumnType
Je ne sais pas pourquoi cela donne ça, mais cela dit tu n'es pas obligé de tester le type de données dans chaque champs. Il sont retourné dans l'ordre de la requête, donc tu peux utiliser directement GetDatabaseString( GetDatabaseDouble etc puisqu'en principe tu connais leur type à l'avance.tlopez05 a écrit :Bonjour,
MySQL(mariadb)
j'ai une table avec une clé de a 8 chiffres ex 06336633,00687580,10025536
query(idDB,"select * from matable;")
puis un While NextDatabaseRow(idDB)
une boucle i sur les Fields
et je teste pour afficher les champs de ma table
Select DatabaseColumnType(idDB,i)
Case #PB_Database_Long
ligne + FormatNumber(GetDatabaselong(idDB,i),2,","," ")+varsep
Case #PB_Database_String
ligne + GetDatabaseString(idDB,i)+varsep
etc..…
dans ce test ma clé qui est un char(8) est reconnu par datacolumntype comme un #PB_Database_Long
avez vous une idée de pourquoi ce résultat ????
Merci
En plus, tes champs sont numériques, mais commencent par un zéro et n'ont pas de virgule, donc ils devraient être stockés comme chaine ?

Re: DatabaseColumnType
la procédure doit afficher tout les champs de la table (passée en paramètre) les tables à examiner ont des champs diverses (type et taille)
la procédure fonctionne globalement sauf pour les champs de type char contenant uniquement des chiffres. le type de champ renvoyé est #PB_Database_Long mais si dans la table le champ est du type varchar la fonction DatabaseColumnType renvoie #PB_Database_string
je ne sais pas si cette anomalie est du à SQL ou a la fonction purebasic.
la procédure fonctionne globalement sauf pour les champs de type char contenant uniquement des chiffres. le type de champ renvoyé est #PB_Database_Long mais si dans la table le champ est du type varchar la fonction DatabaseColumnType renvoie #PB_Database_string
je ne sais pas si cette anomalie est du à SQL ou a la fonction purebasic.