| |
Miembro registrado 91 mensajes |
|
| Publicado el 29,octubre 2018 - 10:18 |
Bonjour,
Quelqu'un a-t-il déjà travaillé sur le problème "Null" ?
Lorsque vous écrivez dans un fichier une valeur "Null", windev renvoie 0 (zéro).
La base de données attend donc une valeur "Null" et un zéro est envoyé.
La base de données (dans mon cas, "MySql") provoque le blocage du programme.
Merci pour vos conseils. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 326 mensajes |
|
| Publicado el 29,octubre 2018 - 12:44 |
Bonjour. Utilises-tu l'accès natif ou pas ? Si accès natif et analyse : vérifier la valeur par défaut si "Null" Voir l'image jointe (ici accès natif Oracle)

Michel |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 91 mensajes |
|
| Publicado el 29,octubre 2018 - 16:16 |
Bonjour,
Oui merci pour ce retour.
Nous travaillons avec MySql, et plus tard avec d'autres bases de données.
L'idée est de mettre au point une solution capable de fonctionner avec toutes les principales bases du marché, avec accès natif ou sans.
C'est un plutôt "anormal" que Windev renvoie 0 (zéro) lorsque l'on s'attend à avoir du <Null>.
Merci quand même pour votre avis. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 29,octubre 2018 - 18:18 |
Bonsoir,
Et mettre une valeur par défaut à -1 cela est-il possible dans votre projet?
Thierry |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 91 mensajes |
|
| Publicado el 30,octubre 2018 - 10:46 |
Bonjour Thierry,
Non, impossible d'envoyer "-1"?
Un "Null" est attendu dans certaines propriétés de la base.
Cdt. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 30,octubre 2018 - 12:43 |
| Utilisez "Table.Rub..null" ? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 30,octubre 2018 - 15:56 |
Il se trouve que THEWORLDASGARP a formulé :
Bonjour Thierry,
Non, impossible d'envoyer "-1"?
Un "Null" est attendu dans certaines propriétés de la base.
Cdt.
la gestion des null version windev est très particulière c'est le cas HF mais je vois que c'est le cas avec l'accès natif aussi
pour ce faire il faut tester la propriété Null de la colonne :
MaTable.MaColonne..Null = vrai (ou faux)
idem pour un HAjoute() ou HModifie()
voir l'aide : https://doc.pcsoft.fr/fr-FR/?2512064&name=Null
dans les champs de saisie il faut mettre la propriété "Retourner NULL si vide" dans la description du champ (onglet détail) afin que les EcranVersFichier fonctionne correctement pour les null
en tout cas c'est du sport....
-- Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
| Publicado el 02,noviembre 2018 - 17:57 |
J'ai expérimenté le même problème avec un base MySQL. Il faut en effet utiliser la syntax Table.Field..Null = True/False (pas pratique en effet, Table.Field = NULL aurait été mieux)
En databinding, les entiers se verront affecter la valeur 0, même si ta rubrique contient NULL Pour contourner le problème il faut récupérer la valeur de ta rubrique dans un Variant (pas pratique non plus)
Je parle bien de l'accès natif, je ne sais pas si ça se passe mieux en HFSQL |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 91 mensajes |
|
| Publicado el 05,noviembre 2018 - 10:47 |
Bonjour,
Oui, j'ai bien dans l'idée d'utiliser le variant. Mais le problème reste encore entier.
Exemple : Je déclare une chaine toto que je force ensuite à <NULL> ChnToto est une chaîne ChnToto = Null
Au débogage, on constate que Windev a stocké un "0" (zéro) dans "ChnToto". Je perds totalement l'information initiale.
Comment forcer le compilateur à conserver cette information ?
Et lorsque j'injecter mon "ChnToto" qui est censé contenir <Null> dans une rubrique de table qui n'accepte rien d'autre que <Null>, on assiste à un beau plantage.
Nous travaillons sur Mysql, mais ensuite avec SqlServer et DB2/400.
Merci pour la syntaxe "Table.Field..Null = True/False " que je ne connaissais pas.
Est-elle valable qu'elle que soit la base ? Cela me solutionne une partie du problème. Comme je perds l'information en cours de route ( <Null> qui devient "0" (zéro)), je ne sais pas à quel moment utiliser cette instruction.
Merci pour vos conseils. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 05,noviembre 2018 - 11:00 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 194 mensajes |
|
| Publicado el 05,noviembre 2018 - 11:05 |
Bonjour
Pour ma part c'est très simple vu que je ne fais que du SQLExec j'ai une petite routine SQLEncode qui s'occupe de retraiter les données à transmettre à MySQL (double quote pour les apostrophes etc...) et qui prend un second paramètre "NULL" ou blanc (par défaut). Cela me permet de spécifier champ par champ si je souhaite utiliser la valeur NULL. Concrètement j'utilise le NULL pour les foreign key et pour les dates essentiellement.
Par contre en lecture des données de la base effectivement par SQLExec je récupère un blanc plutôt que NULL (ce serait d'ailleurs bien que PCSoft le permette sur option) mais bon l'utilisateur ne comprendrait pas de toute façon cette valeur NULL donc lui afficher un blanc me va très bien.
-- Côme, Clairinfo |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 91 mensajes |
|
| Publicado el 05,noviembre 2018 - 15:37 |
| |
| |
| | | |
|
| | |