PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV (versões anteriores) → Nature de l'identifiant automatique d'un fichier HFSQL
Nature de l'identifiant automatique d'un fichier HFSQL
Iniciado por Sauveur CONSALVI, jan., 21 2024 7:05 PM - 5 respostas
Membro registado
374 mensagems
Popularité : +7 (7 votes)
Publicado em janeiro, 21 2024 - 7:05 PM
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
Membro registado
546 mensagems
Publicado em janeiro, 21 2024 - 7:47 PM
Bonjour,
grIDFicCombot avec un t ????
Membro registado
3.347 mensagems
Popularité : +93 (137 votes)
Publicado em janeiro, 21 2024 - 8:41 PM
Salut,
Les identifiants automatiques sont des entiers sur 8 octets
Mais ça fonctionne aussi avec un val(chaîne)
Membro registado
374 mensagems
Popularité : +7 (7 votes)
Publicado em janeiro, 22 2024 - 9:44 AM
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
Membro registado
1 mensagem
Publicado em março, 29 2024 - 3:40 PM
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
Mensagem modificada, março, 29 2024 - 3:42 PM
Membro registado
1.144 mensagems
Popularité : +50 (142 votes)
Publicado em março, 29 2024 - 5:57 PM
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