OVH Cloud OVH Cloud

[WD12] SQLManagerX et MySQL

22 réponses
Avatar
JeAn-PhI
bonjour

je suis en cours de dev avec SQLManagerX et je ne trouve pas comment
mettre les valeurs par défaut définit dans la bdd en l'occurrence NULL

j'ai essayé le mot "DEFAULT" mais cela ne fonctionne pas

comment puis je faire ?

merci

--
Cordialement JeAn-PhI

2 réponses

1 2 3
Avatar
JeAn-PhI
Firetox a écrit :
Bonjour

ok je fais la modif et je modifie mon code en conséquence pour avoir que
des SQLPrepare()



ce n'est pas utile j'ai fait le test avec das insert normaux et cela
fonctionne tres bien si on met @NULL ca met null dans la base
sous windev on voit que le champs est '' mais dans la base on a bien NULL
le prepare le prend bien mais le SQLinsert aussi (puisque prepare demande
SQLinsert sans envoyer la requete, et renvoi la chaine qu'il aurait du
envoyer)

ca marche meme avec SQLEcranVersTable

Bon dev
@+


"JeAn-PhI" a écrit dans le message de news:
48c7a5c4$0$945$
Dans son message précédent, Firetox a écrit :
Bonjour,

voila il faut rajouter ce code a la ligne 68
remplacer le code

lignevalue += :MySQL:mySQLEscapeString(:ValCol[i]) + ","

par

SI :ValCol[i] = "@NULL" ALORS
lignevalue += "null,"
SINON
lignevalue += :MySQL:mySQLEscapeString(:ValCol[i]) + ","
FIN

comme ca si vous voulez null dans une chaine remplissez le membre par
@NULL
pour le reste pas de changement les numeric et date sont normalement
traité correctement
et vous pouvez laisser le code d'hier cette modif ne concerne que prepare
donc comme mes prepares fonctionnent je ne vois pas le probleme de le
laisser
d'apres mes doc de mise ajour, ce code etait un test qui anticipait en
fait votre probleme, car sur mon doc il y a d'ecrit : attention au insert
groupé qui n'ont pas le meme nombre de colonne (donc je pense que j'avais
cherché deja une solution (en 2005 !!! : que le temps passe vite) mais
cela avait pour certaine base qui ont beaucoup de colonne l'effet de
ralentir un peu le traitement et sur les doc les test sur 500 000 million
d'enreg en insert prenait 3 minutes de plus voila pourqoui il avait ete
mis en commentaire (du moins si j'ai bien ecrit a l'epoque)

essayez ce code et je versionnerais si tout fonctionne

@+


"Jacques TREPP" a écrit dans le message de news:
48c775df$0$7064$
"Firetox" a écrit dans le message de
news:48c6bee5$0$1436$
Bonjour,

dans le SQLinsert de SQLManagerX
vous devez avoir a la ligne 64 :

SI ((:ValCol[i] <> :defCol[i]) ET :extCol[i] <> "auto_increment") ALORS
//OU p_prepare ALORS





Bonjour Frédéric,

je te confirme que, déjà dans la VERSION 3.1.0.3 du 18 mars 2005, le
p_prepare est actif.

cordialement

-- Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)





ok je fais la modif et je modifie mon code en conséquence pour avoir que
des SQLPrepare()

merci

-- Cordialement JeAn-PhI







vous mettez la maj en téléchargement ?

--
Cordialement JeAn-PhI
Avatar
Firetox
C'est en ligne



"JeAn-PhI" a écrit dans le message de news:
48c7db91$0$863$
Firetox a écrit :
Bonjour

ok je fais la modif et je modifie mon code en conséquence pour avoir que
des SQLPrepare()



ce n'est pas utile j'ai fait le test avec das insert normaux et cela
fonctionne tres bien si on met @NULL ca met null dans la base
sous windev on voit que le champs est '' mais dans la base on a bien NULL
le prepare le prend bien mais le SQLinsert aussi (puisque prepare demande
SQLinsert sans envoyer la requete, et renvoi la chaine qu'il aurait du
envoyer)

ca marche meme avec SQLEcranVersTable

Bon dev
@+


"JeAn-PhI" a écrit dans le message de news:
48c7a5c4$0$945$
Dans son message précédent, Firetox a écrit :
Bonjour,

voila il faut rajouter ce code a la ligne 68
remplacer le code

lignevalue += :MySQL:mySQLEscapeString(:ValCol[i]) + ","

par

SI :ValCol[i] = "@NULL" ALORS
lignevalue += "null,"
SINON
lignevalue += :MySQL:mySQLEscapeString(:ValCol[i]) + ","
FIN

comme ca si vous voulez null dans une chaine remplissez le membre par
@NULL
pour le reste pas de changement les numeric et date sont normalement
traité correctement
et vous pouvez laisser le code d'hier cette modif ne concerne que
prepare donc comme mes prepares fonctionnent je ne vois pas le probleme
de le laisser
d'apres mes doc de mise ajour, ce code etait un test qui anticipait en
fait votre probleme, car sur mon doc il y a d'ecrit : attention au
insert groupé qui n'ont pas le meme nombre de colonne (donc je pense
que j'avais cherché deja une solution (en 2005 !!! : que le temps passe
vite) mais cela avait pour certaine base qui ont beaucoup de colonne
l'effet de ralentir un peu le traitement et sur les doc les test sur
500 000 million d'enreg en insert prenait 3 minutes de plus voila
pourqoui il avait ete mis en commentaire (du moins si j'ai bien ecrit a
l'epoque)

essayez ce code et je versionnerais si tout fonctionne

@+


"Jacques TREPP" a écrit dans le message de
news: 48c775df$0$7064$
"Firetox" a écrit dans le message de
news:48c6bee5$0$1436$
Bonjour,

dans le SQLinsert de SQLManagerX
vous devez avoir a la ligne 64 :

SI ((:ValCol[i] <> :defCol[i]) ET :extCol[i] <> "auto_increment")
ALORS //OU p_prepare ALORS





Bonjour Frédéric,

je te confirme que, déjà dans la VERSION 3.1.0.3 du 18 mars 2005, le
p_prepare est actif.

cordialement

-- Jacques TREPP
Albygest
3, rue Jean Mermoz
81160 ST-JUERY
(enlevez 'pasdespam' pour me joindre)





ok je fais la modif et je modifie mon code en conséquence pour avoir que
des SQLPrepare()

merci

-- Cordialement JeAn-PhI







vous mettez la maj en téléchargement ?

--
Cordialement JeAn-PhI




1 2 3