Je souhaiterai générer moi-même mes ID dans mes tables d'une base de données
MySQL. L'applicatif se synchronisera avec des postes nomades (saisie de
commandes, etc chez le client) c'est pour cela que j'aimerai créer des GUID
sur ma base pour les synchronisations futures des postes nomades avec la
base réelle. Quelle est la meilleure solution, code ou algo ou autre pour
générer mes GUID ?
t'as raison, c'est une api qui mérite d'etre connue
mais; perso, je reste avec mes bonnes vieilles clé primaire générées par avec mes chtites mimine et ca fait pas mal au cerveau :)
"Gilles" a écrit dans le message de news:
patrice a couché sur son écran : > et comment tu le construit ton guid ?
Et si t'as envie de te faire mal au cerveau ou que tu estimes que le code Microsoft n'est pas assez performant :
http://tools.ietf.org/html/rfc4122
Mon petit doigt me dit que tu vas préférer l'appel API ;)
patrice
chaque terminal genere ses GUID via une clé autoincrementale Par contre dans le fichier maitre de fusion, la clé primaire est composée du numéro unique du terminal,suivi du guid généré par le terminal.
Le numéro unique peut être le numéro de serie du terminal ou pour pc, pré-saisi en config
"Fredo G-MDI" a écrit dans le message de news:48735d19$0$21248$
Bonjour à tous !
Je souhaiterai générer moi-même mes ID dans mes tables d'une base de
données
MySQL. L'applicatif se synchronisera avec des postes nomades (saisie de commandes, etc chez le client) c'est pour cela que j'aimerai créer des
GUID
sur ma base pour les synchronisations futures des postes nomades avec la base réelle. Quelle est la meilleure solution, code ou algo ou autre pour générer mes GUID ?
Merci à tous pour vos réponses
chaque terminal genere ses GUID via une clé autoincrementale
Par contre dans le fichier maitre de fusion, la clé primaire est composée du
numéro unique du terminal,suivi du guid généré par le terminal.
Le numéro unique peut être le numéro de serie du terminal ou pour pc,
pré-saisi en config
"Fredo G-MDI" <fredo@hotmail.com> a écrit dans le message de
news:48735d19$0$21248$426a74cc@news.free.fr...
Bonjour à tous !
Je souhaiterai générer moi-même mes ID dans mes tables d'une base de
données
MySQL. L'applicatif se synchronisera avec des postes nomades (saisie de
commandes, etc chez le client) c'est pour cela que j'aimerai créer des
GUID
sur ma base pour les synchronisations futures des postes nomades avec la
base réelle. Quelle est la meilleure solution, code ou algo ou autre pour
générer mes GUID ?
chaque terminal genere ses GUID via une clé autoincrementale Par contre dans le fichier maitre de fusion, la clé primaire est composée du numéro unique du terminal,suivi du guid généré par le terminal.
Le numéro unique peut être le numéro de serie du terminal ou pour pc, pré-saisi en config
"Fredo G-MDI" a écrit dans le message de news:48735d19$0$21248$
Bonjour à tous !
Je souhaiterai générer moi-même mes ID dans mes tables d'une base de
données
MySQL. L'applicatif se synchronisera avec des postes nomades (saisie de commandes, etc chez le client) c'est pour cela que j'aimerai créer des
GUID
sur ma base pour les synchronisations futures des postes nomades avec la base réelle. Quelle est la meilleure solution, code ou algo ou autre pour générer mes GUID ?
Merci à tous pour vos réponses
patrice
dans un fichier, une clé autoincrémental fourni des numéros uniques alors effectivement, c'est pas un GUID mais plutot un LUID qui est donc valide tant qu'on reste sur le terminal d'où la nécessité de le préfixer par le numéro unique du terminal pour générer un guid
"Gilles" a écrit dans le message de news:
patrice a émis l'idée suivante : > chaque terminal genere ses GUID via une clé autoincrementale > Par contre dans le fichier maitre de fusion, la clé primaire est
composée du
> numéro unique du terminal,suivi du guid généré par le terminal.
Jusqu'à preuve du contraire, un GUID est unique, et n'a rien d'incrémental.
dans un fichier, une clé autoincrémental fourni des numéros uniques
alors effectivement, c'est pas un GUID mais plutot un LUID
qui est donc valide tant qu'on reste sur le terminal
d'où la nécessité de le préfixer par le numéro unique du terminal pour
générer un guid
"Gilles" <boulot_SANSPOURRIEL_@neogie.com> a écrit dans le message de
news:mn.43767d87ba608f87.21586@neogie.com...
patrice a émis l'idée suivante :
> chaque terminal genere ses GUID via une clé autoincrementale
> Par contre dans le fichier maitre de fusion, la clé primaire est
composée du
> numéro unique du terminal,suivi du guid généré par le terminal.
Jusqu'à preuve du contraire, un GUID est unique, et n'a rien
d'incrémental.
dans un fichier, une clé autoincrémental fourni des numéros uniques alors effectivement, c'est pas un GUID mais plutot un LUID qui est donc valide tant qu'on reste sur le terminal d'où la nécessité de le préfixer par le numéro unique du terminal pour générer un guid
"Gilles" a écrit dans le message de news:
patrice a émis l'idée suivante : > chaque terminal genere ses GUID via une clé autoincrementale > Par contre dans le fichier maitre de fusion, la clé primaire est
composée du
> numéro unique du terminal,suivi du guid généré par le terminal.
Jusqu'à preuve du contraire, un GUID est unique, et n'a rien d'incrémental.
Fredo G-MDI
J'ai trouvé ce bout de code mais l'utilisation d'assemblage .NET dans mes projets ne me plait guère car il faut que le framework soit installé : // Utiliser l'assemblage mscorlib.dll DotNetguid est un Guid dynamique = GUID::NewGuid(); id est une chaîne = DotNetGUID:ToString();
Si vous avez d'autres ID ? xD
"Gilles" a écrit dans le message de news:
Il se trouve que patrice a formulé :
dans un fichier, une clé autoincrémental fourni des numéros uniques alors effectivement, c'est pas un GUID mais plutot un LUID qui est donc valide tant qu'on reste sur le terminal d'où la nécessité de le préfixer par le numéro unique du terminal pour générer un guid
Ca n'a rien de très universel et c'est source de problème car il faudra écrire un bout de code pour unifier le terminal, code qui peut changer si on modifie le hardware si on s'est basé la dessus pour son unicité. Si c'est une unicité humaine, numéro d'inventaire ou autre, tot ou tard il y aura une bourde.
Le Guid c'est standard, c'est universel, pourquoi vouloir des bidouilles propriétaires. Et il n'y a aucun risque d'erreur.
J'ai trouvé ce bout de code mais l'utilisation d'assemblage .NET dans mes
projets ne me plait guère car il faut que le framework soit installé :
// Utiliser l'assemblage mscorlib.dll
DotNetguid est un Guid dynamique = GUID::NewGuid();
id est une chaîne = DotNetGUID:ToString();
Si vous avez d'autres ID ? xD
"Gilles" <boulot_SANSPOURRIEL_@neogie.com> a écrit dans le message de news:
mn.43837d87c5dcb77a.21586@neogie.com...
Il se trouve que patrice a formulé :
dans un fichier, une clé autoincrémental fourni des numéros uniques
alors effectivement, c'est pas un GUID mais plutot un LUID
qui est donc valide tant qu'on reste sur le terminal
d'où la nécessité de le préfixer par le numéro unique du terminal pour
générer un guid
Ca n'a rien de très universel et c'est source de problème car il faudra
écrire un bout de code pour unifier le terminal, code qui peut changer si
on modifie le hardware si on s'est basé la dessus pour son unicité.
Si c'est une unicité humaine, numéro d'inventaire ou autre, tot ou tard il
y aura une bourde.
Le Guid c'est standard, c'est universel, pourquoi vouloir des bidouilles
propriétaires. Et il n'y a aucun risque d'erreur.
J'ai trouvé ce bout de code mais l'utilisation d'assemblage .NET dans mes projets ne me plait guère car il faut que le framework soit installé : // Utiliser l'assemblage mscorlib.dll DotNetguid est un Guid dynamique = GUID::NewGuid(); id est une chaîne = DotNetGUID:ToString();
Si vous avez d'autres ID ? xD
"Gilles" a écrit dans le message de news:
Il se trouve que patrice a formulé :
dans un fichier, une clé autoincrémental fourni des numéros uniques alors effectivement, c'est pas un GUID mais plutot un LUID qui est donc valide tant qu'on reste sur le terminal d'où la nécessité de le préfixer par le numéro unique du terminal pour générer un guid
Ca n'a rien de très universel et c'est source de problème car il faudra écrire un bout de code pour unifier le terminal, code qui peut changer si on modifie le hardware si on s'est basé la dessus pour son unicité. Si c'est une unicité humaine, numéro d'inventaire ou autre, tot ou tard il y aura une bourde.
Le Guid c'est standard, c'est universel, pourquoi vouloir des bidouilles propriétaires. Et il n'y a aucun risque d'erreur.
Fredo G-MDI
Merci Gilles pour ta réponse ! C'est d'une vraie synchro dont j'ai besoin. Il faut que je génère des GUID, j'aimerai ne pas avoir à utiliser des assemblages .NET
"Gilles" a écrit dans le message de news:
Fredo G-MDI avait énoncé :
Bonjour à tous !
Je souhaiterai générer moi-même mes ID dans mes tables d'une base de données MySQL. L'applicatif se synchronisera avec des postes nomades (saisie de commandes, etc chez le client) c'est pour cela que j'aimerai créer des GUID sur ma base pour les synchronisations futures des postes nomades avec la base réelle. Quelle est la meilleure solution, code ou algo ou autre pour générer mes GUID ?
Tu veux générer tes GUID où? La synchro se fait dans quel sens? C'est réellement une synchro ou un vidage de données des postes nomades vers une base centrale?
MySQL dispose de la fonction UUID() pour générer des guid.
Si c'est un vidage, il te faut simplement générer les UUID lors des insertions de lignes (et gérer à la main les liaisons lors d'insertions de lignes enfants)
Si c'est une vrai synchro, et que tu as besoin sur tes applis nomades non connectées à MySQL de générer des GUID, alors il te faut générer des GUID en Windev. A moins que ça existe en V12, à priori ca n'existe pas (à ma connaissance.)
cet article indique deux lignes de code pour utiliser le framework.NET http://www.codyx.org/snippet_generer-guid-identifiant-unique_224_l_windev_26.aspx
Merci Gilles pour ta réponse ! C'est d'une vraie synchro dont j'ai besoin.
Il faut que je génère des GUID, j'aimerai ne pas avoir à utiliser des
assemblages .NET
"Gilles" <boulot_SANSPOURRIEL_@neogie.com> a écrit dans le message de news:
mn.43847d8799288247.21586@neogie.com...
Fredo G-MDI avait énoncé :
Bonjour à tous !
Je souhaiterai générer moi-même mes ID dans mes tables d'une base de
données MySQL. L'applicatif se synchronisera avec des postes nomades
(saisie de commandes, etc chez le client) c'est pour cela que j'aimerai
créer des GUID sur ma base pour les synchronisations futures des postes
nomades avec la base réelle. Quelle est la meilleure solution, code ou
algo ou autre pour générer mes GUID ?
Tu veux générer tes GUID où?
La synchro se fait dans quel sens?
C'est réellement une synchro ou un vidage de données des postes nomades
vers une base centrale?
MySQL dispose de la fonction UUID() pour générer des guid.
Si c'est un vidage, il te faut simplement générer les UUID lors des
insertions de lignes (et gérer à la main les liaisons lors d'insertions de
lignes enfants)
Si c'est une vrai synchro, et que tu as besoin sur tes applis nomades non
connectées à MySQL de générer des GUID, alors il te faut générer des GUID
en Windev. A moins que ça existe en V12, à priori ca n'existe pas (à ma
connaissance.)
cet article indique deux lignes de code pour utiliser le framework.NET
http://www.codyx.org/snippet_generer-guid-identifiant-unique_224_l_windev_26.aspx
Merci Gilles pour ta réponse ! C'est d'une vraie synchro dont j'ai besoin. Il faut que je génère des GUID, j'aimerai ne pas avoir à utiliser des assemblages .NET
"Gilles" a écrit dans le message de news:
Fredo G-MDI avait énoncé :
Bonjour à tous !
Je souhaiterai générer moi-même mes ID dans mes tables d'une base de données MySQL. L'applicatif se synchronisera avec des postes nomades (saisie de commandes, etc chez le client) c'est pour cela que j'aimerai créer des GUID sur ma base pour les synchronisations futures des postes nomades avec la base réelle. Quelle est la meilleure solution, code ou algo ou autre pour générer mes GUID ?
Tu veux générer tes GUID où? La synchro se fait dans quel sens? C'est réellement une synchro ou un vidage de données des postes nomades vers une base centrale?
MySQL dispose de la fonction UUID() pour générer des guid.
Si c'est un vidage, il te faut simplement générer les UUID lors des insertions de lignes (et gérer à la main les liaisons lors d'insertions de lignes enfants)
Si c'est une vrai synchro, et que tu as besoin sur tes applis nomades non connectées à MySQL de générer des GUID, alors il te faut générer des GUID en Windev. A moins que ça existe en V12, à priori ca n'existe pas (à ma connaissance.)
cet article indique deux lignes de code pour utiliser le framework.NET http://www.codyx.org/snippet_generer-guid-identifiant-unique_224_l_windev_26.aspx
Il se trouve que patrice a formulé : > dans un fichier, une clé autoincrémental fourni des numéros uniques > alors effectivement, c'est pas un GUID mais plutot un LUID > qui est donc valide tant qu'on reste sur le terminal > d'où la nécessité de le préfixer par le numéro unique du terminal pour > générer un guid
Ca n'a rien de très universel et c'est source de problème car il faudra écrire un bout de code pour unifier le terminal, code qui peut changer si on modifie le hardware si on s'est basé la dessus pour son unicité. Si c'est une unicité humaine, numéro d'inventaire ou autre, tot ou tard il y aura une bourde.
Le Guid c'est standard, c'est universel, pourquoi vouloir des bidouilles propriétaires. Et il n'y a aucun risque d'erreur.
et comment tu le construit ton guid ?
"Gilles" <boulot_SANSPOURRIEL_@neogie.com> a écrit dans le message de
news:mn.43837d87c5dcb77a.21586@neogie.com...
Il se trouve que patrice a formulé :
> dans un fichier, une clé autoincrémental fourni des numéros uniques
> alors effectivement, c'est pas un GUID mais plutot un LUID
> qui est donc valide tant qu'on reste sur le terminal
> d'où la nécessité de le préfixer par le numéro unique du terminal pour
> générer un guid
Ca n'a rien de très universel et c'est source de problème car il faudra
écrire un bout de code pour unifier le terminal, code qui peut changer
si on modifie le hardware si on s'est basé la dessus pour son unicité.
Si c'est une unicité humaine, numéro d'inventaire ou autre, tot ou tard
il y aura une bourde.
Le Guid c'est standard, c'est universel, pourquoi vouloir des
bidouilles propriétaires. Et il n'y a aucun risque d'erreur.
Il se trouve que patrice a formulé : > dans un fichier, une clé autoincrémental fourni des numéros uniques > alors effectivement, c'est pas un GUID mais plutot un LUID > qui est donc valide tant qu'on reste sur le terminal > d'où la nécessité de le préfixer par le numéro unique du terminal pour > générer un guid
Ca n'a rien de très universel et c'est source de problème car il faudra écrire un bout de code pour unifier le terminal, code qui peut changer si on modifie le hardware si on s'est basé la dessus pour son unicité. Si c'est une unicité humaine, numéro d'inventaire ou autre, tot ou tard il y aura une bourde.
Le Guid c'est standard, c'est universel, pourquoi vouloir des bidouilles propriétaires. Et il n'y a aucun risque d'erreur.
patrice
Attention toutefois de bien stocker le résultat en binaire sur 16 octets.
"Gilles" a écrit dans le message de news:
patrice a couché sur son écran : > et comment tu le construit ton guid ?
Et si t'as envie de te faire mal au cerveau ou que tu estimes que le code Microsoft n'est pas assez performant :
http://tools.ietf.org/html/rfc4122
Mon petit doigt me dit que tu vas préférer l'appel API ;)
Attention toutefois de bien stocker le résultat en binaire sur 16 octets.
"Gilles" <boulot_SANSPOURRIEL_@neogie.com> a écrit dans le message de
news:mn.43977d877e072a5c.21586@neogie.com...
patrice a couché sur son écran :
> et comment tu le construit ton guid ?
Et si t'as envie de te faire mal au cerveau ou que tu estimes que le
code Microsoft n'est pas assez performant :
http://tools.ietf.org/html/rfc4122
Mon petit doigt me dit que tu vas préférer l'appel API ;)
"patrice" a écrit dans le message de news: 48736b80$0$11989$
Attention toutefois de bien stocker le résultat en binaire sur 16 octets.
"Gilles" a écrit dans le message de news:
patrice a couché sur son écran : > et comment tu le construit ton guid ?
Et si t'as envie de te faire mal au cerveau ou que tu estimes que le code Microsoft n'est pas assez performant :
http://tools.ietf.org/html/rfc4122
Mon petit doigt me dit que tu vas préférer l'appel API ;)
Stockez-vous ces clés primaires en chaine dans la base ou vous les transformez en entier?
patrice
comme déliré susditement, je n'utilise pas ces guid mais une clé composé d'un entier sur 4 qui provient d'une clé autoincremental et d'un numéro unique du terminal (taille variable selon application) "Fredo G-MDI" a écrit dans le message de news:48737cba$0$22392$
"patrice" a écrit dans le message de news: 48736b80$0$11989$ > Attention toutefois de bien stocker le résultat en binaire sur 16
octets.
> > > > "Gilles" a écrit dans le message de > news: >> patrice a couché sur son écran : >> > et comment tu le construit ton guid ? >> >> Et si t'as envie de te faire mal au cerveau ou que tu estimes que le >> code Microsoft n'est pas assez performant : >> >> http://tools.ietf.org/html/rfc4122 >> >> Mon petit doigt me dit que tu vas préférer l'appel API ;) >> >> > >
Stockez-vous ces clés primaires en chaine dans la base ou vous les transformez en entier?
comme déliré susditement, je n'utilise pas ces guid mais une clé composé
d'un entier sur 4 qui provient d'une clé autoincremental et d'un numéro
unique du terminal (taille variable selon application)
"Fredo G-MDI" <fredo@hotmail.com> a écrit dans le message de
news:48737cba$0$22392$426a74cc@news.free.fr...
"patrice" <patrice_labracherie_nospam@free.fr> a écrit dans le message de
news: 48736b80$0$11989$426a34cc@news.free.fr...
> Attention toutefois de bien stocker le résultat en binaire sur 16
octets.
>
>
>
> "Gilles" <boulot_SANSPOURRIEL_@neogie.com> a écrit dans le message de
> news:mn.43977d877e072a5c.21586@neogie.com...
>> patrice a couché sur son écran :
>> > et comment tu le construit ton guid ?
>>
>> Et si t'as envie de te faire mal au cerveau ou que tu estimes que le
>> code Microsoft n'est pas assez performant :
>>
>> http://tools.ietf.org/html/rfc4122
>>
>> Mon petit doigt me dit que tu vas préférer l'appel API ;)
>>
>>
>
>
Stockez-vous ces clés primaires en chaine dans la base ou vous les
transformez en entier?
comme déliré susditement, je n'utilise pas ces guid mais une clé composé d'un entier sur 4 qui provient d'une clé autoincremental et d'un numéro unique du terminal (taille variable selon application) "Fredo G-MDI" a écrit dans le message de news:48737cba$0$22392$
"patrice" a écrit dans le message de news: 48736b80$0$11989$ > Attention toutefois de bien stocker le résultat en binaire sur 16
octets.
> > > > "Gilles" a écrit dans le message de > news: >> patrice a couché sur son écran : >> > et comment tu le construit ton guid ? >> >> Et si t'as envie de te faire mal au cerveau ou que tu estimes que le >> code Microsoft n'est pas assez performant : >> >> http://tools.ietf.org/html/rfc4122 >> >> Mon petit doigt me dit que tu vas préférer l'appel API ;) >> >> > >
Stockez-vous ces clés primaires en chaine dans la base ou vous les transformez en entier?