bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
--
Cordialement JeAn-PhI
bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
--
Cordialement JeAn-PhI
bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
--
Cordialement JeAn-PhI
bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
--
Cordialement JeAn-PhI
bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
--
Cordialement JeAn-PhI
bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
--
Cordialement JeAn-PhI
je viens de faire un test
c'est a cause de ton prepare car en mode standard (SQLinsert et SQLupdate
sans prepare) envoi la colonne que si on la force sinon on ne l'envoi pas
mais dans ton cas le prepare force l'envoi de la colonne et donc comme la
valeur est vide on envoi la valeur par defaut , mais c'est une fonction
donc il n'aurait pas fallut envoyé les quotes
donc sur le prepare il faut trouve une solution pour specifier que c'est
une fonction sur cette colonne pour ne pas envoyé les quotes ou alors
faire un code speciale a cause du prepare
Bon dev
@+
"JeAn-PhI" a écrit dans le message de news:
48cf657f$0$12634$bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
--
Cordialement JeAn-PhI
je viens de faire un test
c'est a cause de ton prepare car en mode standard (SQLinsert et SQLupdate
sans prepare) envoi la colonne que si on la force sinon on ne l'envoi pas
mais dans ton cas le prepare force l'envoi de la colonne et donc comme la
valeur est vide on envoi la valeur par defaut , mais c'est une fonction
donc il n'aurait pas fallut envoyé les quotes
donc sur le prepare il faut trouve une solution pour specifier que c'est
une fonction sur cette colonne pour ne pas envoyé les quotes ou alors
faire un code speciale a cause du prepare
Bon dev
@+
"JeAn-PhI" <nospam@nospam.fr> a écrit dans le message de news:
48cf657f$0$12634$426a74cc@news.free.fr...
bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
--
Cordialement JeAn-PhI
je viens de faire un test
c'est a cause de ton prepare car en mode standard (SQLinsert et SQLupdate
sans prepare) envoi la colonne que si on la force sinon on ne l'envoi pas
mais dans ton cas le prepare force l'envoi de la colonne et donc comme la
valeur est vide on envoi la valeur par defaut , mais c'est une fonction
donc il n'aurait pas fallut envoyé les quotes
donc sur le prepare il faut trouve une solution pour specifier que c'est
une fonction sur cette colonne pour ne pas envoyé les quotes ou alors
faire un code speciale a cause du prepare
Bon dev
@+
"JeAn-PhI" a écrit dans le message de news:
48cf657f$0$12634$bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
--
Cordialement JeAn-PhI
Bonjour,
remplace dans le SQLinsert le bloc du case DATE,TIMESTAMP
par le code ci dessous :
ligneCol +=:DcaractEspace+ :NomCol[i] +:FCaracterEspace + ","
// modif du 10/09/2008 pour remplacer une chaine vide par Null
// il suffit d'alimenter les colonnes vides avec "@NULL"
SI :ValCol[i] = "@NULL" ALORS
ligneValue += "null,"
SINON
SI :defCol[i] <> "" ALORS
// modifi du 16/09/2008 si la valeur par defaut est differentes de ''
alors on a afaire a une fonction
// attention voir si une valeur par defaut autre que fonction est
posssible
// voir quand meme si le probleme de la fonction est reglé sinon il
faudra faire autre chose pour identifier les fonctions des vrais valeur par
defaut
ligneValue += :ValCol[i]) + ","
SINON
ligneValue += :MySQL:mySQLDateFormat(:ValCol[i]) + ","
FIN
FIN
cela pour un test car il engendre un autre probleme
Bon dev
@+
"Firetox" a écrit dans le message de news:
48cf6af1$0$17347$je viens de faire un test
c'est a cause de ton prepare car en mode standard (SQLinsert et SQLupdate
sans prepare) envoi la colonne que si on la force sinon on ne l'envoi pas
mais dans ton cas le prepare force l'envoi de la colonne et donc comme la
valeur est vide on envoi la valeur par defaut , mais c'est une fonction
donc il n'aurait pas fallut envoyé les quotes
donc sur le prepare il faut trouve une solution pour specifier que c'est
une fonction sur cette colonne pour ne pas envoyé les quotes ou alors faire
un code speciale a cause du prepare
Bon dev
@+
"JeAn-PhI" a écrit dans le message de news:
48cf657f$0$12634$bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
-- Cordialement JeAn-PhI
Bonjour,
remplace dans le SQLinsert le bloc du case DATE,TIMESTAMP
par le code ci dessous :
ligneCol +=:DcaractEspace+ :NomCol[i] +:FCaracterEspace + ","
// modif du 10/09/2008 pour remplacer une chaine vide par Null
// il suffit d'alimenter les colonnes vides avec "@NULL"
SI :ValCol[i] = "@NULL" ALORS
ligneValue += "null,"
SINON
SI :defCol[i] <> "" ALORS
// modifi du 16/09/2008 si la valeur par defaut est differentes de ''
alors on a afaire a une fonction
// attention voir si une valeur par defaut autre que fonction est
posssible
// voir quand meme si le probleme de la fonction est reglé sinon il
faudra faire autre chose pour identifier les fonctions des vrais valeur par
defaut
ligneValue += :ValCol[i]) + ","
SINON
ligneValue += :MySQL:mySQLDateFormat(:ValCol[i]) + ","
FIN
FIN
cela pour un test car il engendre un autre probleme
Bon dev
@+
"Firetox" <firetox@SQLManagerX.com> a écrit dans le message de news:
48cf6af1$0$17347$426a74cc@news.free.fr...
je viens de faire un test
c'est a cause de ton prepare car en mode standard (SQLinsert et SQLupdate
sans prepare) envoi la colonne que si on la force sinon on ne l'envoi pas
mais dans ton cas le prepare force l'envoi de la colonne et donc comme la
valeur est vide on envoi la valeur par defaut , mais c'est une fonction
donc il n'aurait pas fallut envoyé les quotes
donc sur le prepare il faut trouve une solution pour specifier que c'est
une fonction sur cette colonne pour ne pas envoyé les quotes ou alors faire
un code speciale a cause du prepare
Bon dev
@+
"JeAn-PhI" <nospam@nospam.fr> a écrit dans le message de news:
48cf657f$0$12634$426a74cc@news.free.fr...
bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
-- Cordialement JeAn-PhI
Bonjour,
remplace dans le SQLinsert le bloc du case DATE,TIMESTAMP
par le code ci dessous :
ligneCol +=:DcaractEspace+ :NomCol[i] +:FCaracterEspace + ","
// modif du 10/09/2008 pour remplacer une chaine vide par Null
// il suffit d'alimenter les colonnes vides avec "@NULL"
SI :ValCol[i] = "@NULL" ALORS
ligneValue += "null,"
SINON
SI :defCol[i] <> "" ALORS
// modifi du 16/09/2008 si la valeur par defaut est differentes de ''
alors on a afaire a une fonction
// attention voir si une valeur par defaut autre que fonction est
posssible
// voir quand meme si le probleme de la fonction est reglé sinon il
faudra faire autre chose pour identifier les fonctions des vrais valeur par
defaut
ligneValue += :ValCol[i]) + ","
SINON
ligneValue += :MySQL:mySQLDateFormat(:ValCol[i]) + ","
FIN
FIN
cela pour un test car il engendre un autre probleme
Bon dev
@+
"Firetox" a écrit dans le message de news:
48cf6af1$0$17347$je viens de faire un test
c'est a cause de ton prepare car en mode standard (SQLinsert et SQLupdate
sans prepare) envoi la colonne que si on la force sinon on ne l'envoi pas
mais dans ton cas le prepare force l'envoi de la colonne et donc comme la
valeur est vide on envoi la valeur par defaut , mais c'est une fonction
donc il n'aurait pas fallut envoyé les quotes
donc sur le prepare il faut trouve une solution pour specifier que c'est
une fonction sur cette colonne pour ne pas envoyé les quotes ou alors faire
un code speciale a cause du prepare
Bon dev
@+
"JeAn-PhI" a écrit dans le message de news:
48cf657f$0$12634$bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP") pour
une colonne de type TIMESTAMP alors que d'après la doc officielle cette
colonne doit se mettre à jour automatiquement sans valeur par défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce genre
de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
-- Cordialement JeAn-PhI
Firetox a couché sur son écran :Bonjour,
remplace dans le SQLinsert le bloc du case DATE,TIMESTAMP
par le code ci dessous :
ligneCol +=:DcaractEspace+ :NomCol[i] +:FCaracterEspace + ","
// modif du 10/09/2008 pour remplacer une chaine vide par Null
// il suffit d'alimenter les colonnes vides avec "@NULL"
SI :ValCol[i] = "@NULL" ALORS
ligneValue += "null,"
SINON
SI :defCol[i] <> "" ALORS
// modifi du 16/09/2008 si la valeur par defaut est differentes
de '' alors on a afaire a une fonction
// attention voir si une valeur par defaut autre que fonction est
posssible
// voir quand meme si le probleme de la fonction est reglé sinon
il faudra faire autre chose pour identifier les fonctions des vrais
valeur par defaut
ligneValue += :ValCol[i]) + ","
SINON
ligneValue += :MySQL:mySQLDateFormat(:ValCol[i]) + ","
FIN
FIN
cela pour un test car il engendre un autre probleme
Bon dev
@+
"Firetox" a écrit dans le message de news:
48cf6af1$0$17347$je viens de faire un test
c'est a cause de ton prepare car en mode standard (SQLinsert et
SQLupdate sans prepare) envoi la colonne que si on la force sinon on ne
l'envoi pas
mais dans ton cas le prepare force l'envoi de la colonne et donc comme
la valeur est vide on envoi la valeur par defaut , mais c'est une
fonction donc il n'aurait pas fallut envoyé les quotes
donc sur le prepare il faut trouve une solution pour specifier que c'est
une fonction sur cette colonne pour ne pas envoyé les quotes ou alors
faire un code speciale a cause du prepare
Bon dev
@+
"JeAn-PhI" a écrit dans le message de news:
48cf657f$0$12634$bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP")
pour une colonne de type TIMESTAMP alors que d'après la doc officielle
cette colonne doit se mettre à jour automatiquement sans valeur par
défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce
genre de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
-- Cordialement JeAn-PhI
désolé pour la réponse tardive
je résume :
- si je fais un insert avec un frontal sans valeur par défaut dans ma bdd
il ne renseigne pas la colonne avec "date+heure" mais avec NULL chose que
je ne comprends pas :-( la doc indique le contraire
- si je fais un "SQLPrepare" avec SQLManagerX sans valeur par défaut dans
ma bdd et que je ne mets pas de valeur pour cette colonne dans mon code
WinDev, donc la colonne n'est pas renseignée ni envoyée dans la requête,
je me retrouve avec NULL par défaut ce qui est normal vu le comportement
avec le frontal
- si je fais un "SQLPrepare" avec SQLManagerX avec valeur par défaut
(CURRENT_TIMESTAMP) dans ma bdd et que je ne mets pas de valeur pour cette
colonne dans mon code WinDev (membre non renseigné), donc la colonne n'est
pas renseignée mais elle est envoyée dans la requête avec
'CURRENT_TIMESTAMP' car :defCol[i] contient la valeur "CURRENT_TIMESAMP"
je retrouve avec une erreur car CURRENT_TIMESTAMP est une fonction et non
une valeur textuelle
j'ai donc comme valeur :
:ValCol[i] = "CURRENT_TIMESTAMP"
:defCol[i] = "CURRENT_TIMESTAMP"
:extCol[i] = ""
p_prepare = Vrai
je viens de faire la modification et cela fonctionne
effectivement faire attention car les valeurs par défaut peuvent ne pas
être que des fonctions donc identifier les fonctions de façon dynamique
serait un plus
en attendant la suite...
--
Cordialement JeAn-PhI
Firetox a couché sur son écran :
Bonjour,
remplace dans le SQLinsert le bloc du case DATE,TIMESTAMP
par le code ci dessous :
ligneCol +=:DcaractEspace+ :NomCol[i] +:FCaracterEspace + ","
// modif du 10/09/2008 pour remplacer une chaine vide par Null
// il suffit d'alimenter les colonnes vides avec "@NULL"
SI :ValCol[i] = "@NULL" ALORS
ligneValue += "null,"
SINON
SI :defCol[i] <> "" ALORS
// modifi du 16/09/2008 si la valeur par defaut est differentes
de '' alors on a afaire a une fonction
// attention voir si une valeur par defaut autre que fonction est
posssible
// voir quand meme si le probleme de la fonction est reglé sinon
il faudra faire autre chose pour identifier les fonctions des vrais
valeur par defaut
ligneValue += :ValCol[i]) + ","
SINON
ligneValue += :MySQL:mySQLDateFormat(:ValCol[i]) + ","
FIN
FIN
cela pour un test car il engendre un autre probleme
Bon dev
@+
"Firetox" <firetox@SQLManagerX.com> a écrit dans le message de news:
48cf6af1$0$17347$426a74cc@news.free.fr...
je viens de faire un test
c'est a cause de ton prepare car en mode standard (SQLinsert et
SQLupdate sans prepare) envoi la colonne que si on la force sinon on ne
l'envoi pas
mais dans ton cas le prepare force l'envoi de la colonne et donc comme
la valeur est vide on envoi la valeur par defaut , mais c'est une
fonction donc il n'aurait pas fallut envoyé les quotes
donc sur le prepare il faut trouve une solution pour specifier que c'est
une fonction sur cette colonne pour ne pas envoyé les quotes ou alors
faire un code speciale a cause du prepare
Bon dev
@+
"JeAn-PhI" <nospam@nospam.fr> a écrit dans le message de news:
48cf657f$0$12634$426a74cc@news.free.fr...
bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP")
pour une colonne de type TIMESTAMP alors que d'après la doc officielle
cette colonne doit se mettre à jour automatiquement sans valeur par
défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce
genre de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
-- Cordialement JeAn-PhI
désolé pour la réponse tardive
je résume :
- si je fais un insert avec un frontal sans valeur par défaut dans ma bdd
il ne renseigne pas la colonne avec "date+heure" mais avec NULL chose que
je ne comprends pas :-( la doc indique le contraire
- si je fais un "SQLPrepare" avec SQLManagerX sans valeur par défaut dans
ma bdd et que je ne mets pas de valeur pour cette colonne dans mon code
WinDev, donc la colonne n'est pas renseignée ni envoyée dans la requête,
je me retrouve avec NULL par défaut ce qui est normal vu le comportement
avec le frontal
- si je fais un "SQLPrepare" avec SQLManagerX avec valeur par défaut
(CURRENT_TIMESTAMP) dans ma bdd et que je ne mets pas de valeur pour cette
colonne dans mon code WinDev (membre non renseigné), donc la colonne n'est
pas renseignée mais elle est envoyée dans la requête avec
'CURRENT_TIMESTAMP' car :defCol[i] contient la valeur "CURRENT_TIMESAMP"
je retrouve avec une erreur car CURRENT_TIMESTAMP est une fonction et non
une valeur textuelle
j'ai donc comme valeur :
:ValCol[i] = "CURRENT_TIMESTAMP"
:defCol[i] = "CURRENT_TIMESTAMP"
:extCol[i] = ""
p_prepare = Vrai
je viens de faire la modification et cela fonctionne
effectivement faire attention car les valeurs par défaut peuvent ne pas
être que des fonctions donc identifier les fonctions de façon dynamique
serait un plus
en attendant la suite...
--
Cordialement JeAn-PhI
Firetox a couché sur son écran :Bonjour,
remplace dans le SQLinsert le bloc du case DATE,TIMESTAMP
par le code ci dessous :
ligneCol +=:DcaractEspace+ :NomCol[i] +:FCaracterEspace + ","
// modif du 10/09/2008 pour remplacer une chaine vide par Null
// il suffit d'alimenter les colonnes vides avec "@NULL"
SI :ValCol[i] = "@NULL" ALORS
ligneValue += "null,"
SINON
SI :defCol[i] <> "" ALORS
// modifi du 16/09/2008 si la valeur par defaut est differentes
de '' alors on a afaire a une fonction
// attention voir si une valeur par defaut autre que fonction est
posssible
// voir quand meme si le probleme de la fonction est reglé sinon
il faudra faire autre chose pour identifier les fonctions des vrais
valeur par defaut
ligneValue += :ValCol[i]) + ","
SINON
ligneValue += :MySQL:mySQLDateFormat(:ValCol[i]) + ","
FIN
FIN
cela pour un test car il engendre un autre probleme
Bon dev
@+
"Firetox" a écrit dans le message de news:
48cf6af1$0$17347$je viens de faire un test
c'est a cause de ton prepare car en mode standard (SQLinsert et
SQLupdate sans prepare) envoi la colonne que si on la force sinon on ne
l'envoi pas
mais dans ton cas le prepare force l'envoi de la colonne et donc comme
la valeur est vide on envoi la valeur par defaut , mais c'est une
fonction donc il n'aurait pas fallut envoyé les quotes
donc sur le prepare il faut trouve une solution pour specifier que c'est
une fonction sur cette colonne pour ne pas envoyé les quotes ou alors
faire un code speciale a cause du prepare
Bon dev
@+
"JeAn-PhI" a écrit dans le message de news:
48cf657f$0$12634$bonjour
mon problème sur l'affectation des NULL est maintenant corrigé merci
encore à Firetox
mais j'ai un autre soucis.
j'ai défini dans ma BDD une valeur par défaut ("CURRENT_TIMESTAMP")
pour une colonne de type TIMESTAMP alors que d'après la doc officielle
cette colonne doit se mettre à jour automatiquement sans valeur par
défaut
bref cela fonctionne lorsque j'utilise un frontal mais lors de
l'utilisation de SQLManagerX cela ne fonctionne pas.
effectivement lorsqu'on regarde la req envoyée on a :
values (...,....,...,'CURRENT_TIMESTAMP') avec des quotes
donc j'aimerais bien apporté un correctif pour prendre en compte ce
genre de pb mais j'aimerais qu'il soit profitable pour tous et fait
convenablement sans qu'il y ait des effets de bord "tarabiscotté"
donc qu'elle est la meilleure façon de procéder ?
merci
-- Cordialement JeAn-PhI
désolé pour la réponse tardive
je résume :
- si je fais un insert avec un frontal sans valeur par défaut dans ma bdd
il ne renseigne pas la colonne avec "date+heure" mais avec NULL chose que
je ne comprends pas :-( la doc indique le contraire
- si je fais un "SQLPrepare" avec SQLManagerX sans valeur par défaut dans
ma bdd et que je ne mets pas de valeur pour cette colonne dans mon code
WinDev, donc la colonne n'est pas renseignée ni envoyée dans la requête,
je me retrouve avec NULL par défaut ce qui est normal vu le comportement
avec le frontal
- si je fais un "SQLPrepare" avec SQLManagerX avec valeur par défaut
(CURRENT_TIMESTAMP) dans ma bdd et que je ne mets pas de valeur pour cette
colonne dans mon code WinDev (membre non renseigné), donc la colonne n'est
pas renseignée mais elle est envoyée dans la requête avec
'CURRENT_TIMESTAMP' car :defCol[i] contient la valeur "CURRENT_TIMESAMP"
je retrouve avec une erreur car CURRENT_TIMESTAMP est une fonction et non
une valeur textuelle
j'ai donc comme valeur :
:ValCol[i] = "CURRENT_TIMESTAMP"
:defCol[i] = "CURRENT_TIMESTAMP"
:extCol[i] = ""
p_prepare = Vrai
je viens de faire la modification et cela fonctionne
effectivement faire attention car les valeurs par défaut peuvent ne pas
être que des fonctions donc identifier les fonctions de façon dynamique
serait un plus
en attendant la suite...
--
Cordialement JeAn-PhI
j'ai fait une modif dans ce sens
j'ai rajouter une methode SetFonctionDefaut qui permet de specifier si la
colonne a pour valeur par defaut une fonction
ainsi quand on declare l'objet SQLManagerX il suffit de dire que cette
colonne a une fonction pour valeur defaut et la valeur ne sera pas mise en ''
donc recap :
i_client est un c_client("Client",monAcces,"i_client)
i_client:setFonctionDefaut("DateMAJ")
veut dire que la dateMAJ a pour defaut une fonction
et donc insert n'everra pas les quotes sur le timeStamp
j'ai pris pour base le code que je t"ai donné mais avec la difference qu'on
peut quand meme envoyé autre chose
je verifie tout ca car il faut que je test avec , sans , en forcant la valeur
etc ......
le principe :
si valCol[i] = '' alors on met le defaut et si foncCol[i] alors defaut sans
les quotes
Bon dev
@+
j'ai fait une modif dans ce sens
j'ai rajouter une methode SetFonctionDefaut qui permet de specifier si la
colonne a pour valeur par defaut une fonction
ainsi quand on declare l'objet SQLManagerX il suffit de dire que cette
colonne a une fonction pour valeur defaut et la valeur ne sera pas mise en ''
donc recap :
i_client est un c_client("Client",monAcces,"i_client)
i_client:setFonctionDefaut("DateMAJ")
veut dire que la dateMAJ a pour defaut une fonction
et donc insert n'everra pas les quotes sur le timeStamp
j'ai pris pour base le code que je t"ai donné mais avec la difference qu'on
peut quand meme envoyé autre chose
je verifie tout ca car il faut que je test avec , sans , en forcant la valeur
etc ......
le principe :
si valCol[i] = '' alors on met le defaut et si foncCol[i] alors defaut sans
les quotes
Bon dev
@+
j'ai fait une modif dans ce sens
j'ai rajouter une methode SetFonctionDefaut qui permet de specifier si la
colonne a pour valeur par defaut une fonction
ainsi quand on declare l'objet SQLManagerX il suffit de dire que cette
colonne a une fonction pour valeur defaut et la valeur ne sera pas mise en ''
donc recap :
i_client est un c_client("Client",monAcces,"i_client)
i_client:setFonctionDefaut("DateMAJ")
veut dire que la dateMAJ a pour defaut une fonction
et donc insert n'everra pas les quotes sur le timeStamp
j'ai pris pour base le code que je t"ai donné mais avec la difference qu'on
peut quand meme envoyé autre chose
je verifie tout ca car il faut que je test avec , sans , en forcant la valeur
etc ......
le principe :
si valCol[i] = '' alors on met le defaut et si foncCol[i] alors defaut sans
les quotes
Bon dev
@+
Firetox avait soumis l'idée :j'ai fait une modif dans ce sens
j'ai rajouter une methode SetFonctionDefaut qui permet de specifier si la
colonne a pour valeur par defaut une fonction
ainsi quand on declare l'objet SQLManagerX il suffit de dire que cette
colonne a une fonction pour valeur defaut et la valeur ne sera pas mise
en ''
donc recap :
i_client est un c_client("Client",monAcces,"i_client)
i_client:setFonctionDefaut("DateMAJ")
veut dire que la dateMAJ a pour defaut une fonction
et donc insert n'everra pas les quotes sur le timeStamp
j'ai pris pour base le code que je t"ai donné mais avec la difference
qu'on peut quand meme envoyé autre chose
je verifie tout ca car il faut que je test avec , sans , en forcant la
valeur etc ......
le principe :
si valCol[i] = '' alors on met le defaut et si foncCol[i] alors defaut
sans les quotes
Bon dev
@+
dans la PROCEDURE SetFonctionDefault il faut mettre vrai et non faux
BOUCLE
v_indice++
v_nomCol = ExtraitChaîne(p_nomdeColonne,v_indice,",")
SI v_nomCol = EOT ALORS SORTIR
SI v_nomCol = "" ALORS SORTIR
i = Position(Minuscule(:listeColonne),"/"+Minuscule(v_nomCol)+",")
SI i > 0 ALORS
i = Val(:listeColonne[[ (i+1)+Taille(v_nomCol)+2 sur 4]])
SI i >= 1 ET i <= Dimension(:NomCol) ALORS
:FoncCol[i] = True // <= Pas False
FIN
FIN
FIN
car le test est :
// 16/09/2008 modif si la colonne est une fonction il ne faut pas mettre
de '' dur la valeur par defaut
SI :FoncCol[i] ALORS
ligneValue += :defCol[i] + ","
SINON
ligneValue += :MySQL:mySQLDateFormat(:ValCol[i]) + ","
FIN
et cela fonctionne je suppose que c'est un copier/coller de setNotNull()
:D
--
Cordialement JeAn-PhI
Firetox avait soumis l'idée :
j'ai fait une modif dans ce sens
j'ai rajouter une methode SetFonctionDefaut qui permet de specifier si la
colonne a pour valeur par defaut une fonction
ainsi quand on declare l'objet SQLManagerX il suffit de dire que cette
colonne a une fonction pour valeur defaut et la valeur ne sera pas mise
en ''
donc recap :
i_client est un c_client("Client",monAcces,"i_client)
i_client:setFonctionDefaut("DateMAJ")
veut dire que la dateMAJ a pour defaut une fonction
et donc insert n'everra pas les quotes sur le timeStamp
j'ai pris pour base le code que je t"ai donné mais avec la difference
qu'on peut quand meme envoyé autre chose
je verifie tout ca car il faut que je test avec , sans , en forcant la
valeur etc ......
le principe :
si valCol[i] = '' alors on met le defaut et si foncCol[i] alors defaut
sans les quotes
Bon dev
@+
dans la PROCEDURE SetFonctionDefault il faut mettre vrai et non faux
BOUCLE
v_indice++
v_nomCol = ExtraitChaîne(p_nomdeColonne,v_indice,",")
SI v_nomCol = EOT ALORS SORTIR
SI v_nomCol = "" ALORS SORTIR
i = Position(Minuscule(:listeColonne),"/"+Minuscule(v_nomCol)+",")
SI i > 0 ALORS
i = Val(:listeColonne[[ (i+1)+Taille(v_nomCol)+2 sur 4]])
SI i >= 1 ET i <= Dimension(:NomCol) ALORS
:FoncCol[i] = True // <= Pas False
FIN
FIN
FIN
car le test est :
// 16/09/2008 modif si la colonne est une fonction il ne faut pas mettre
de '' dur la valeur par defaut
SI :FoncCol[i] ALORS
ligneValue += :defCol[i] + ","
SINON
ligneValue += :MySQL:mySQLDateFormat(:ValCol[i]) + ","
FIN
et cela fonctionne je suppose que c'est un copier/coller de setNotNull()
:D
--
Cordialement JeAn-PhI
Firetox avait soumis l'idée :j'ai fait une modif dans ce sens
j'ai rajouter une methode SetFonctionDefaut qui permet de specifier si la
colonne a pour valeur par defaut une fonction
ainsi quand on declare l'objet SQLManagerX il suffit de dire que cette
colonne a une fonction pour valeur defaut et la valeur ne sera pas mise
en ''
donc recap :
i_client est un c_client("Client",monAcces,"i_client)
i_client:setFonctionDefaut("DateMAJ")
veut dire que la dateMAJ a pour defaut une fonction
et donc insert n'everra pas les quotes sur le timeStamp
j'ai pris pour base le code que je t"ai donné mais avec la difference
qu'on peut quand meme envoyé autre chose
je verifie tout ca car il faut que je test avec , sans , en forcant la
valeur etc ......
le principe :
si valCol[i] = '' alors on met le defaut et si foncCol[i] alors defaut
sans les quotes
Bon dev
@+
dans la PROCEDURE SetFonctionDefault il faut mettre vrai et non faux
BOUCLE
v_indice++
v_nomCol = ExtraitChaîne(p_nomdeColonne,v_indice,",")
SI v_nomCol = EOT ALORS SORTIR
SI v_nomCol = "" ALORS SORTIR
i = Position(Minuscule(:listeColonne),"/"+Minuscule(v_nomCol)+",")
SI i > 0 ALORS
i = Val(:listeColonne[[ (i+1)+Taille(v_nomCol)+2 sur 4]])
SI i >= 1 ET i <= Dimension(:NomCol) ALORS
:FoncCol[i] = True // <= Pas False
FIN
FIN
FIN
car le test est :
// 16/09/2008 modif si la colonne est une fonction il ne faut pas mettre
de '' dur la valeur par defaut
SI :FoncCol[i] ALORS
ligneValue += :defCol[i] + ","
SINON
ligneValue += :MySQL:mySQLDateFormat(:ValCol[i]) + ","
FIN
et cela fonctionne je suppose que c'est un copier/coller de setNotNull()
:D
--
Cordialement JeAn-PhI
exact j'ai fait la maodif et je suis en train de faire l'upload
il faut aussi changer la remise a zero en fait il faut inverser le true et le
false
@+
exact j'ai fait la maodif et je suis en train de faire l'upload
il faut aussi changer la remise a zero en fait il faut inverser le true et le
false
@+
exact j'ai fait la maodif et je suis en train de faire l'upload
il faut aussi changer la remise a zero en fait il faut inverser le true et le
false
@+