PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV (versiones precedentes) → Nature de l'identifiant automatique d'un fichier HFSQL
Nature de l'identifiant automatique d'un fichier HFSQL
Iniciado por Sauveur CONSALVI, 21,ene. 2024 19:05 - 5 respuestas
Miembro registrado
374 mensajes
Popularité : +7 (7 votes)
Publicado el 21,enero 2024 - 19:05
Bonjour
Dans la description des fichiers je vois que l'identifiant automatique est sur 8 octets
Bêtement sans doute, j'ai créé des variables de type réelle
Et je constate que je ne récupérere pas la bonne valeur lors de l'affectation
grIDFicCombo est un réels
grIDFicCombo = ECOL_FicCombo.IDFicCombo

si je fais
Trace("Matiére "+ " indent "+ECOL_FicCombo.IDFicCombo+" "+grIDFicCombot)

Je constate que la valeur de ECOL_FicCombo.IDFicCombo est différente de grIDFicCombot

En parcourant le NET je suis tombé sur un article disant que l'identifiant automatique est de type CHAINE
Effectivement, quand j'affecte à une chaine ECOL_FicCombo.IDFicCombo j'ai le bon identifiant

Confirmez-vous que c'est bien une variable de type chaine qu'il faut définir pour les identifiants automatique ?

Cordialement
SC

--
Cordialement
SC
Miembro registrado
546 mensajes
Publicado el 21,enero 2024 - 19:47
Bonjour,
grIDFicCombot avec un t ????
Miembro registrado
3.347 mensajes
Popularité : +93 (137 votes)
Publicado el 21,enero 2024 - 20:41
Salut,
Les identifiants automatiques sont des entiers sur 8 octets
Mais ça fonctionne aussi avec un val(chaîne)
Miembro registrado
374 mensajes
Popularité : +7 (7 votes)
Publicado el 22,enero 2024 - 09:44
Bonjour à tous
Merci de votre aide

Effectivement, en remplaçant Réels par entier sur 8 octets j’obtiens bien le bon identifiant
Merci bien
Cordialement
SC

--
Cordialement
SC
Miembro registrado
1 mensaje
Publicado el 29,marzo 2024 - 15:40
Bonjour,
le problème est plus complexe qu'il n'y parait.
En effet selon que tu fasses de la réplication ou pas l'iDAuto est entier sur 8 octets (pas de réplication) ou entier sans signe sur 8 octets (réplication)
Mais dans les deux cas, n'est pas possible de passer un ID en paramètre à une procédure unique pour laquelle on aura typé le paramètre à moins de créer deux procédures identiques avec syntaxes différentes et Windev va s'adapter et prendre la bonne procédure

Procedure RechercheID(ParID est un entier sur 8 octets) // sera choisi pour un enregistrement non répliqué
// traitement
retour

Procedure RechercheID(ParID est un entier sans signe sur 8 octets) // sera choisi pour un enregistrement répliqué
// traitement
retour

Cordialement

--
Thierry CHATEAU-DARNIS
CASTEL-LYON
Mensaje modificado, 29,marzo 2024 - 15:42
Miembro registrado
1.144 mensajes
Popularité : +50 (142 votes)
Publicado el 29,marzo 2024 - 17:57
Bonjour,

La différence vient de la représentation informatique d'un type Réel qui est moins précis qu'un type numérique, monétaire ou chaine (avec un cast automatique).

J'explique ça dans cette courte vidéo :


voir aussi la doc : https://doc.pcsoft.fr/?1514048