Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gerer un cas d'exception

2 réponses
Avatar
Roumegou Eric
Bonjour,
je ne sais pas trop gérer les cas d'erreur et j'aurais besoin de
monitorer un pb assez récurrent.

J'utilise les accès alternatifs et pour lire une colonne, il y a 2
méthodes (mySQLCol et mySQLColLong).
La première pour les zones normales (<256 car), la 2nd pour les champs
mémo. On avait fait ça pour optimiser la mémoire.

Mon souci est qu'il m'arrive d'oublier de mettre mySQLColLong comme
méthode et cela plante dès que la zone à un contenu > 256 car.

Récemment j'ai eu un bug sur presque tous mes sites à cause d'une
procédure qui existait depuis 3 ans; mais comme jusqu'à présent on
utilisait pas cette données, cela ne se manifestait pas.

D'où l'idée de monitorer ce plantage, mais mes essais sont vains.
Voilà ce que l'on a essayé(cf en bas du msg) . Cela ne plante plus sur
le mysqlcol, mais ensuite il faut fermer la requete. On a aussi essayer
en cas de plantage de renvoyer sur la méthode mysqlcollong (mais cela
ne marche pas)

Auriez vous une idée svp ?



FONCTION mySQLCol(requestNumber is int, numField is int)

LOCAL
myRequestNumber is int
myNumField is unsigned int
myBuffer is ASCIIZ string on 256

myNumField = numField - 1
myRequestNumber = requestNumber

AppelDLL32("mySQL4WD", "mySQLLitCol", :myMaxConnectionNumber,
myRequestNumber, myNumField, &myBuffer)

RENVOYER(myBuffer)

CAS EXCEPTION:
:mySQLFerme(requestNumber)
Info("Erreur dans lecture base de données (pb SQLColLong ?) : merci
de prévenir le service technique")

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)

2 réponses

Avatar
JeAn-PhI
Roumegou Eric a exprimé avec précision :
Bonjour,
je ne sais pas trop gérer les cas d'erreur et j'aurais besoin de monitorer un
pb assez récurrent.

J'utilise les accès alternatifs et pour lire une colonne, il y a 2 méthodes
(mySQLCol et mySQLColLong).
La première pour les zones normales (<256 car), la 2nd pour les champs mémo.
On avait fait ça pour optimiser la mémoire.

Mon souci est qu'il m'arrive d'oublier de mettre mySQLColLong comme méthode
et cela plante dès que la zone à un contenu > 256 car.

Récemment j'ai eu un bug sur presque tous mes sites à cause d'une procédure
qui existait depuis 3 ans; mais comme jusqu'à présent on utilisait pas cette
données, cela ne se manifestait pas.

D'où l'idée de monitorer ce plantage, mais mes essais sont vains.
Voilà ce que l'on a essayé(cf en bas du msg) . Cela ne plante plus sur le
mysqlcol, mais ensuite il faut fermer la requete. On a aussi essayer en cas
de plantage de renvoyer sur la méthode mysqlcollong (mais cela ne marche pas)

Auriez vous une idée svp ?



FONCTION mySQLCol(requestNumber is int, numField is int)

LOCAL
myRequestNumber is int
myNumField is unsigned int
myBuffer is ASCIIZ string on 256

myNumField = numField - 1
myRequestNumber = requestNumber

AppelDLL32("mySQL4WD", "mySQLLitCol", :myMaxConnectionNumber,
myRequestNumber, myNumField, &myBuffer)

RENVOYER(myBuffer)

CAS EXCEPTION:
:mySQLFerme(requestNumber)
Info("Erreur dans lecture base de données (pb SQLColLong ?) : merci de
prévenir le service technique")



n'y a-t-il pas de moyen de tester le type de la colonne avant pour
utiliser la méthode adéquate ?

--
Cordialement JeAn-PhI
Avatar
Vbig
Roumegou Eric avait soumis l'idée :
Bonjour,
je ne sais pas trop gérer les cas d'erreur et j'aurais besoin de monitorer un
pb assez récurrent.

J'utilise les accès alternatifs et pour lire une colonne, il y a 2 méthodes
(mySQLCol et mySQLColLong).
La première pour les zones normales (<256 car), la 2nd pour les champs mémo.
On avait fait ça pour optimiser la mémoire.

Mon souci est qu'il m'arrive d'oublier de mettre mySQLColLong comme méthode
et cela plante dès que la zone à un contenu > 256 car.

Récemment j'ai eu un bug sur presque tous mes sites à cause d'une procédure
qui existait depuis 3 ans; mais comme jusqu'à présent on utilisait pas cette
données, cela ne se manifestait pas.

D'où l'idée de monitorer ce plantage, mais mes essais sont vains.
Voilà ce que l'on a essayé(cf en bas du msg) . Cela ne plante plus sur le
mysqlcol, mais ensuite il faut fermer la requete. On a aussi essayer en cas
de plantage de renvoyer sur la méthode mysqlcollong (mais cela ne marche pas)

Auriez vous une idée svp ?



FONCTION mySQLCol(requestNumber is int, numField is int)

LOCAL
myRequestNumber is int
myNumField is unsigned int
myBuffer is ASCIIZ string on 256

myNumField = numField - 1
myRequestNumber = requestNumber

AppelDLL32("mySQL4WD", "mySQLLitCol", :myMaxConnectionNumber,
myRequestNumber, myNumField, &myBuffer)

RENVOYER(myBuffer)

CAS EXCEPTION:
:mySQLFerme(requestNumber)
Info("Erreur dans lecture base de données (pb SQLColLong ?) : merci de
prévenir le service technique")



quand exception dans
AppelDLL32("mySQL4WD", "mySQLLitCol", :myMaxConnectionNumber,
myRequestNumber, myNumField, &myBuffer)
RENVOYER(myBuffer)
faire
stop
// erreur dans mysqllitcol ??
renvoyer mySQLColLong(requestNumber, numField)
fin

Et normalement pas de mysqlferme necessaire
Cordialement
vbig