MONTRER LA STRUCTURE DES CHAMPS D' 1 TABLE (COMME DATABASE DESKTOP)

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 22 déc. 2004 à 17:45
Cointement Messages postés 3 Date d'inscription vendredi 9 avril 2010 Statut Membre Dernière intervention 6 février 2019 - 6 févr. 2019 à 15:18
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28338-montrer-la-structure-des-champs-d-1-table-comme-database-desktop

Cointement Messages postés 3 Date d'inscription vendredi 9 avril 2010 Statut Membre Dernière intervention 6 février 2019
6 févr. 2019 à 15:18
J'ai qqs problèmes pour le faire fonctionner sur une table Paradox.

radox. Dans la ComboboxType.Items j'ai changé l'ordre des types de la manière suivante et attribué dans la procedure procedure TFrm_MTable.ComboTypeClick(Sender: TObject); les valeurs 1, 2 etc
A Alphanumérique 1
D Date 2
M Memo 3
L Logique 4
S Entier court 5
I Entier Long 6
N Numérique 7
# DCB Taille 8
Y Octets 9
T Heure 10
@ Date/Heure 11
F Mémo formaté N 12
G Graphique N 13
O Ole N 14
+ Incrémentation auto N 15
B Binaire N 16
$ Monétaire 17
Pour les champs de type F,G,O,+,B,$ je reçois le message type de champ incorrect
Je ne vois pas bien où est l'erreur à moins que . unit StrucBDD soit compilée avec un BDE incomplet
Merci pour les conseils qui pourraientm' être indiqués
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
23 déc. 2004 à 16:39
Non, franchement, sans la source de cupRacing, j' aurais jamais reussis.
Je viens de 'parler' avec jmp77 et les champs de type number des tables paradox ne sont pas parametrables.
Donc, voilà les gars ....
+++
cupracing Messages postés 27 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 24 février 2005 1
23 déc. 2004 à 16:18
oui ca marche aussi chez moi la ligne "pFlds := Nil;" avant l'appel de FreeMem. Décidément Mauricio a réponse à tout ! Bravo !
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
23 déc. 2004 à 16:04
Ouai, se fut pas evident du tout, mais je cherchais comment resoudre ton probleme et j' y ai pensé.
Alors pour les tables paradox que j' utilise pas du tout, donc ça m' aide pas, je pense que le probleme vient du fait que les Champs sont de type Number, et si tu les ouvres avec Database Desktop, et bien tu peux pas préciser leur taille ni le nombre de decimal comme pour DBase. À moins que ce n' est pas le type Number pour les floats... Passe moi ta table Paradox par mail si tu veux !!!
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
23 déc. 2004 à 15:49
Yes Mauricio.

Impeccable chez moi ca marche nickel.

Felicitation pour cette trouvaille. Il fallait encore y penser.
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
23 déc. 2004 à 15:43
Voilà une soluce pour le probleme cité plus haut :

pFlds := Nil;
FreeMem(pFlds);

Ajoutez donc la ligne pFlds := Nil; avant le FreeMem !!!
Est ce que ça marche aussi pour vous les gars?
cupracing Messages postés 27 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 24 février 2005 1
23 déc. 2004 à 15:01
JOYEUX NOEL à vous zossi !!

jmp77 c clair que rien ne vaut une bonne pause pour reposer le cerveau (...et ces nerfs aussi lol) et enfin trouver les soluces ...
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
23 déc. 2004 à 14:43
Merci, et joyeux Noel à tous!
C' est pas un probleme de Delphi vu que la source de cupRacing possede la meme instruction et que ça fonctionne !!! Bizarre ... Mais ça vient de mon code, ça c' est sur.
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
23 déc. 2004 à 13:53
Ouais vraiment bizarre ce probleme. Disons que si tu as une version supérieur à delphi 4 et ben il faut pas mettre "FreeMem(pFlds)". Pourquoi? Mystère et boulle de gomme!!!

Moi je viens de m'arracher les cheveux pour essayer de faire la meme chose avec une base paradox et je crois que je vais abandonner. Je verrais ca plus tard je vais faire une pause car sinon je vais craquer.

Allez ++ les gars,
JMP77.

PS : Au fait tant que je suis là j'en profite Joyeux noel a vous deux.
cupracing Messages postés 27 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 24 février 2005 1
23 déc. 2004 à 13:35
Merci bcp pour vos remarques ... c'est très sympa ;-)
Concernant "FreeMem(pFlds)" j'ai viens encore de regarder et je comprend vraiment pas pourquoi ça ne marche pas chez vous !?! bizarre, bizarre. Moi je possède Delphi 4/Win XP Pro.
@+
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
23 déc. 2004 à 10:21
Exact, je pense aussi que tout le mérite reviens et exclusivement à cupRacing. Je n' ai fait que m' inspirer très fortement sur sa source pour pouvoir résoudre notre problème. J' ai vu tout de suite qu' il y avait moyen de récup' du bon code !!!
Donc, merci à toi cupRacing: )
En ce qui concerne FreeMem(pFlds), c' est bizzarre parce que la source de cupRacing possède la meme instruction (normal après ce que je viend de dire) e ça marche bien. Pour info, je suis sur Delphi 7/WinXP pro.

PS: la fonction qui passe une DBGrid vers Html aujourd' hui !!! A suivre donc ...
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
23 déc. 2004 à 09:59
Félicitation mauricio !!!!

C'est du bon boulot et une année qui va se finir en beauté grace à cela (lol).

Bon sinon j'ai moi aussi une erreur de pointeur en fesant // FreeMem(pFlds); et franchement je ne vois pas pourquoi surtout si Cupracing ne l'a pas c'est bizarre. Moi je suis en Win 2000 avec delphi 6. Je sais pas si ca peut jouer.

Bon sinon mauvaise petite nouvelle je viens de tester avec une base paradox et ca ne fonctionne pas snif... Ca ne marche qu'avec des bases DBases.
Il ne reconnait aucun champ Integer (il met ????) et les champ flottant il met la taille à 1 et le nombre de décimales à 0.
Je vais jeter un petit coup d'oeil pour voir si je trouve quelque chose la dessus.

Encore bravo et merci à toi Mauricio.

Je pense que je n'ai pas besoin de préciser que la note est bien entendu de 10/10.

PS: Merci à toi aussi Cupracing car si tu n'étais pas pris la tete pour ajouter un champ on serait encore entrain de s'arracher les neurones sur ce problème.
cupracing Messages postés 27 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 24 février 2005 1
23 déc. 2004 à 09:10
Bravo pour ta fonction Mauricio ça marche très bien et ça va pouvoir aussi me servir !!! c'est vraiment cool.
Par contre chez moi la ligne "FreeMem(pFlds)" fonctionne sans erreur... c'est bizarre !!!

@lex
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
22 déc. 2004 à 17:45
Ha oui, j' ai mis en commentaire la ligne :
// FreeMem(pFlds);
parce que sinon ça gère une erreur, si quelqu' un sait pourquoi ????
Rejoignez-nous