Bonjour,
je bute sur la syntaxe des transactions. Voici une requète qui me permet en
1 fois de déplacer toute une série de touches d'un éctan tactile.
L'écran est divisé en 2 plans de 81 touches virtuelles
les touches sont numérotées de 1 à 81, précédé du N° de plan soit :
plan 1 : 101 à 181
plan 2 : 201 à 281
bien sur les clés sont une concaténation des différentes touches : la 1ere
touche du plan 1 (101) peut distribuer 81 touches, donc les clés vont de :
101
101201 à 101281
si je déplace la touche 101 en 110, je veux déplacer en cascade toutes les
touches-filles concernées. Pour cela, j'ai la requète magique que voici :
update FTACTILE
SET TOUCHE = concat('110',substring(TOUCHE,4,3))
where substring(TOUCHE,1,3) = '101'
et ça marche ! :)
je voudrais simplement consolider le bazar par une transaction. comment
faire ?
merci
--
Jacques TREPP
AlbyGest
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
roumegou
Salut Jacques,
jacques trepp a écrit:
Bonjour, je bute sur la syntaxe des transactions. Voici une requète qui me permet en 1 fois de déplacer toute une série de touches d'un éctan tactile. L'écran est divisé en 2 plans de 81 touches virtuelles les touches sont numérotées de 1 à 81, précédé du N° de plan soit : plan 1 : 101 à 181 plan 2 : 201 à 281 bien sur les clés sont une concaténation des différentes touches : la 1ere touche du plan 1 (101) peut distribuer 81 touches, donc les clés vont de : 101 101201 à 101281 si je déplace la touche 101 en 110, je veux déplacer en cascade toutes les touches-filles concernées. Pour cela, j'ai la requète magique que voici :
update FTACTILE SET TOUCHE = concat('110',substring(TOUCHE,4,3)) where substring(TOUCHE,1,3) = '101'
et ça marche ! :) je voudrais simplement consolider le bazar par une transaction. comment faire ?
merci
ci après une fonction qui permet d'executer un fichier script sql. Il y a une transaction, et tu pourras t'en inspirer ...car j'ai rien compris à tes touches ;-) Là seule chose qui m'a fait frémir, c'est "les clés sont une concaténation des différentes touches ..." Bien sûr ce ne sont pas tes clés primaires n'est ce pas ? ... car "pas de signifiants dans un identifiant" où j'te cause plus na !
FONCTION ExecBatchScript(pScript) lignelue,commande est chaîne res est un booléen IdFichier est un entier PasGlop est un booléen i,nbmaj est un entier msgRet est chaîne codret est un entier retCode est un booléen nbmaj=0 msgRet="" IdFichier=fOuvre(pScript,foLecture)
fSQL:SetAutoCommit(False, 1)
retCode = fSQL:mySQLTransaction((fSQL:mySQLDebut), 1) //sqltransaction(sqlDébut) PasGlopúux lignelue = fLitLigne(IdFichier) // Autres lignes à lire ? Erreur de lecture ? TANTQUE lignelue <> EOT ET lignelue <> "" commande=TronqueDernierCaractere(lignelue) //enlève le ; retCode = fSQL:mySQLExec(commande, 1) SI PAS retCode ALORS PasGlop=Vrai FIN fSQL:mySQLFerme(1) nbmaj++ // Lecture des lignes suivantes du fichier lignelue = fLitLigne(IdFichier) FIN //TANTQUE LigneLue <> EOT ET LigneLue <> ""
SI PasGlop ALORS //SQLTransaction(sqlAnnule) fSQL:mySQLTransaction((fSQL:mySQLAnnule), 1) msgRet="Erreur execution script SQL : Transaction annulée" SINON //SQLTransaction(SQLFin) fSQL:mySQLTransaction((fSQL:mySQLFin), 1) msgRet=nbmaj+" Script executé avec succès" FIN resÿerme(IdFichier) RENVOYER msgRet
Salut Jacques,
jacques trepp a écrit:
Bonjour,
je bute sur la syntaxe des transactions. Voici une requète qui me permet en
1 fois de déplacer toute une série de touches d'un éctan tactile.
L'écran est divisé en 2 plans de 81 touches virtuelles
les touches sont numérotées de 1 à 81, précédé du N° de plan soit :
plan 1 : 101 à 181
plan 2 : 201 à 281
bien sur les clés sont une concaténation des différentes touches : la 1ere
touche du plan 1 (101) peut distribuer 81 touches, donc les clés vont de :
101
101201 à 101281
si je déplace la touche 101 en 110, je veux déplacer en cascade toutes les
touches-filles concernées. Pour cela, j'ai la requète magique que voici :
update FTACTILE
SET TOUCHE = concat('110',substring(TOUCHE,4,3))
where substring(TOUCHE,1,3) = '101'
et ça marche ! :)
je voudrais simplement consolider le bazar par une transaction. comment
faire ?
merci
ci après une fonction qui permet d'executer un fichier script sql. Il y
a une transaction, et tu pourras t'en inspirer ...car j'ai rien compris
à tes touches ;-)
Là seule chose qui m'a fait frémir, c'est "les clés sont une
concaténation des différentes touches ..."
Bien sûr ce ne sont pas tes clés primaires n'est ce pas ? ... car "pas
de signifiants dans un identifiant" où j'te cause plus na !
FONCTION ExecBatchScript(pScript)
lignelue,commande est chaîne
res est un booléen
IdFichier est un entier
PasGlop est un booléen
i,nbmaj est un entier
msgRet est chaîne
codret est un entier
retCode est un booléen
nbmaj=0
msgRet=""
IdFichier=fOuvre(pScript,foLecture)
fSQL:SetAutoCommit(False, 1)
retCode = fSQL:mySQLTransaction((fSQL:mySQLDebut), 1)
//sqltransaction(sqlDébut)
PasGlopúux
lignelue = fLitLigne(IdFichier)
// Autres lignes à lire ? Erreur de lecture ?
TANTQUE lignelue <> EOT ET lignelue <> ""
commande=TronqueDernierCaractere(lignelue) //enlève le ;
retCode = fSQL:mySQLExec(commande, 1)
SI PAS retCode ALORS
PasGlop=Vrai
FIN
fSQL:mySQLFerme(1)
nbmaj++
// Lecture des lignes suivantes du fichier
lignelue = fLitLigne(IdFichier)
FIN //TANTQUE LigneLue <> EOT ET LigneLue <> ""
SI PasGlop ALORS
//SQLTransaction(sqlAnnule)
fSQL:mySQLTransaction((fSQL:mySQLAnnule), 1)
msgRet="Erreur execution script SQL : Transaction annulée"
SINON
//SQLTransaction(SQLFin)
fSQL:mySQLTransaction((fSQL:mySQLFin), 1)
msgRet=nbmaj+" Script executé avec succès"
FIN
resÿerme(IdFichier)
RENVOYER msgRet
Bonjour, je bute sur la syntaxe des transactions. Voici une requète qui me permet en 1 fois de déplacer toute une série de touches d'un éctan tactile. L'écran est divisé en 2 plans de 81 touches virtuelles les touches sont numérotées de 1 à 81, précédé du N° de plan soit : plan 1 : 101 à 181 plan 2 : 201 à 281 bien sur les clés sont une concaténation des différentes touches : la 1ere touche du plan 1 (101) peut distribuer 81 touches, donc les clés vont de : 101 101201 à 101281 si je déplace la touche 101 en 110, je veux déplacer en cascade toutes les touches-filles concernées. Pour cela, j'ai la requète magique que voici :
update FTACTILE SET TOUCHE = concat('110',substring(TOUCHE,4,3)) where substring(TOUCHE,1,3) = '101'
et ça marche ! :) je voudrais simplement consolider le bazar par une transaction. comment faire ?
merci
ci après une fonction qui permet d'executer un fichier script sql. Il y a une transaction, et tu pourras t'en inspirer ...car j'ai rien compris à tes touches ;-) Là seule chose qui m'a fait frémir, c'est "les clés sont une concaténation des différentes touches ..." Bien sûr ce ne sont pas tes clés primaires n'est ce pas ? ... car "pas de signifiants dans un identifiant" où j'te cause plus na !
FONCTION ExecBatchScript(pScript) lignelue,commande est chaîne res est un booléen IdFichier est un entier PasGlop est un booléen i,nbmaj est un entier msgRet est chaîne codret est un entier retCode est un booléen nbmaj=0 msgRet="" IdFichier=fOuvre(pScript,foLecture)
fSQL:SetAutoCommit(False, 1)
retCode = fSQL:mySQLTransaction((fSQL:mySQLDebut), 1) //sqltransaction(sqlDébut) PasGlopúux lignelue = fLitLigne(IdFichier) // Autres lignes à lire ? Erreur de lecture ? TANTQUE lignelue <> EOT ET lignelue <> "" commande=TronqueDernierCaractere(lignelue) //enlève le ; retCode = fSQL:mySQLExec(commande, 1) SI PAS retCode ALORS PasGlop=Vrai FIN fSQL:mySQLFerme(1) nbmaj++ // Lecture des lignes suivantes du fichier lignelue = fLitLigne(IdFichier) FIN //TANTQUE LigneLue <> EOT ET LigneLue <> ""
SI PasGlop ALORS //SQLTransaction(sqlAnnule) fSQL:mySQLTransaction((fSQL:mySQLAnnule), 1) msgRet="Erreur execution script SQL : Transaction annulée" SINON //SQLTransaction(SQLFin) fSQL:mySQLTransaction((fSQL:mySQLFin), 1) msgRet=nbmaj+" Script executé avec succès" FIN resÿerme(IdFichier) RENVOYER msgRet
Daniel
Bonsoir Jacques,
ci-joint un exemple de code
result est booleen convsql:mysqltransaction(convsql:mysqldebut,0) result= convsql:mysqlexec("update ftactile set touche....",0) si result alors convsql:mysqltransaction(convsql:mysqlfin,0) sinon convsql:mysqltransaction(convsql:mysqlannule,0) fin
Normalement celà doit être bon...
"jacques trepp" writes:
Bonjour, je bute sur la syntaxe des transactions. Voici une requète qui me perme t en 1 fois de déplacer toute une série de touches d'un éctan tactile. L'écran est divisé en 2 plans de 81 touches virtuelles les touches sont numérotées de 1 à 81, précédé du N° de pla n soit : plan 1 : 101 à 181 plan 2 : 201 à 281 bien sur les clés sont une concaténation des différentes touches : la 1ere touche du plan 1 (101) peut distribuer 81 touches, donc les clés vont d e : 101 101201 à 101281 si je déplace la touche 101 en 110, je veux déplacer en cascade toute s les touches-filles concernées. Pour cela, j'ai la requète magique que voi ci :
update FTACTILE SET TOUCHE = concat('110',substring(TOUCHE,4,3)) where substring(TOUCHE,1,3) = '101'
et ça marche ! :) je voudrais simplement consolider le bazar par une transaction. comment faire ?
merci
-- Jacques TREPP AlbyGest
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
-- suivre ce lien pour répondre: http://cerbermail.com/?2KrV3YZXnn Daniel ;-)
Bonsoir Jacques,
ci-joint un exemple de code
result est booleen
convsql:mysqltransaction(convsql:mysqldebut,0)
result= convsql:mysqlexec("update ftactile set touche....",0)
si result alors
convsql:mysqltransaction(convsql:mysqlfin,0)
sinon
convsql:mysqltransaction(convsql:mysqlannule,0)
fin
Bonjour,
je bute sur la syntaxe des transactions. Voici une requète qui me perme t en
1 fois de déplacer toute une série de touches d'un éctan tactile.
L'écran est divisé en 2 plans de 81 touches virtuelles
les touches sont numérotées de 1 à 81, précédé du N° de pla n soit :
plan 1 : 101 à 181
plan 2 : 201 à 281
bien sur les clés sont une concaténation des différentes touches : la 1ere
touche du plan 1 (101) peut distribuer 81 touches, donc les clés vont d e :
101
101201 à 101281
si je déplace la touche 101 en 110, je veux déplacer en cascade toute s les
touches-filles concernées. Pour cela, j'ai la requète magique que voi ci :
update FTACTILE
SET TOUCHE = concat('110',substring(TOUCHE,4,3))
where substring(TOUCHE,1,3) = '101'
et ça marche ! :)
je voudrais simplement consolider le bazar par une transaction. comment
faire ?
merci
--
Jacques TREPP
AlbyGest
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
result est booleen convsql:mysqltransaction(convsql:mysqldebut,0) result= convsql:mysqlexec("update ftactile set touche....",0) si result alors convsql:mysqltransaction(convsql:mysqlfin,0) sinon convsql:mysqltransaction(convsql:mysqlannule,0) fin
Normalement celà doit être bon...
"jacques trepp" writes:
Bonjour, je bute sur la syntaxe des transactions. Voici une requète qui me perme t en 1 fois de déplacer toute une série de touches d'un éctan tactile. L'écran est divisé en 2 plans de 81 touches virtuelles les touches sont numérotées de 1 à 81, précédé du N° de pla n soit : plan 1 : 101 à 181 plan 2 : 201 à 281 bien sur les clés sont une concaténation des différentes touches : la 1ere touche du plan 1 (101) peut distribuer 81 touches, donc les clés vont d e : 101 101201 à 101281 si je déplace la touche 101 en 110, je veux déplacer en cascade toute s les touches-filles concernées. Pour cela, j'ai la requète magique que voi ci :
update FTACTILE SET TOUCHE = concat('110',substring(TOUCHE,4,3)) where substring(TOUCHE,1,3) = '101'
et ça marche ! :) je voudrais simplement consolider le bazar par une transaction. comment faire ?
merci
-- Jacques TREPP AlbyGest
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
-- suivre ce lien pour répondre: http://cerbermail.com/?2KrV3YZXnn Daniel ;-)
jacques trepp
Daniel wrote:
Bonsoir Jacques,
ci-joint un exemple de code
result est booleen convsql:mysqltransaction(convsql:mysqldebut,0) result= convsql:mysqlexec("update ftactile set touche....",0) si result alors convsql:mysqltransaction(convsql:mysqlfin,0) sinon convsql:mysqltransaction(convsql:mysqlannule,0) fin
Normalement celà doit être bon...
"jacques trepp" writes:
Bonjour, je bute sur la syntaxe des transactions. Voici une requète qui me permet en 1 fois de déplacer toute une série de touches d'un éctan tactile. L'écran est divisé en 2 plans de 81 touches virtuelles les touches sont numérotées de 1 à 81, précédé du N° de plan soit : plan 1 : 101 à 181 plan 2 : 201 à 281 bien sur les clés sont une concaténation des différentes touches : la 1ere touche du plan 1 (101) peut distribuer 81 touches, donc les clés vont de : 101 101201 à 101281 si je déplace la touche 101 en 110, je veux déplacer en cascade toutes les touches-filles concernées. Pour cela, j'ai la requète magique que voici :
update FTACTILE SET TOUCHE = concat('110',substring(TOUCHE,4,3)) where substring(TOUCHE,1,3) = '101'
et ça marche ! :) je voudrais simplement consolider le bazar par une transaction. comment faire ?
merci
-- Jacques TREPP AlbyGest
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
Merci beaucoup. Je vais tester de ce pas :)
-- Jacques TREPP AlbyGest
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
Daniel wrote:
Bonsoir Jacques,
ci-joint un exemple de code
result est booleen
convsql:mysqltransaction(convsql:mysqldebut,0)
result= convsql:mysqlexec("update ftactile set touche....",0)
si result alors
convsql:mysqltransaction(convsql:mysqlfin,0)
sinon
convsql:mysqltransaction(convsql:mysqlannule,0)
fin
Bonjour,
je bute sur la syntaxe des transactions. Voici une requète qui me
permet en 1 fois de déplacer toute une série de touches d'un éctan
tactile.
L'écran est divisé en 2 plans de 81 touches virtuelles
les touches sont numérotées de 1 à 81, précédé du N° de plan soit :
plan 1 : 101 à 181
plan 2 : 201 à 281
bien sur les clés sont une concaténation des différentes touches :
la 1ere touche du plan 1 (101) peut distribuer 81 touches, donc les
clés vont de : 101
101201 à 101281
si je déplace la touche 101 en 110, je veux déplacer en cascade
toutes les touches-filles concernées. Pour cela, j'ai la requète
magique que voici :
update FTACTILE
SET TOUCHE = concat('110',substring(TOUCHE,4,3))
where substring(TOUCHE,1,3) = '101'
et ça marche ! :)
je voudrais simplement consolider le bazar par une transaction.
comment faire ?
merci
--
Jacques TREPP
AlbyGest
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
Merci beaucoup. Je vais tester de ce pas :)
--
Jacques TREPP
AlbyGest
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
result est booleen convsql:mysqltransaction(convsql:mysqldebut,0) result= convsql:mysqlexec("update ftactile set touche....",0) si result alors convsql:mysqltransaction(convsql:mysqlfin,0) sinon convsql:mysqltransaction(convsql:mysqlannule,0) fin
Normalement celà doit être bon...
"jacques trepp" writes:
Bonjour, je bute sur la syntaxe des transactions. Voici une requète qui me permet en 1 fois de déplacer toute une série de touches d'un éctan tactile. L'écran est divisé en 2 plans de 81 touches virtuelles les touches sont numérotées de 1 à 81, précédé du N° de plan soit : plan 1 : 101 à 181 plan 2 : 201 à 281 bien sur les clés sont une concaténation des différentes touches : la 1ere touche du plan 1 (101) peut distribuer 81 touches, donc les clés vont de : 101 101201 à 101281 si je déplace la touche 101 en 110, je veux déplacer en cascade toutes les touches-filles concernées. Pour cela, j'ai la requète magique que voici :
update FTACTILE SET TOUCHE = concat('110',substring(TOUCHE,4,3)) where substring(TOUCHE,1,3) = '101'
et ça marche ! :) je voudrais simplement consolider le bazar par une transaction. comment faire ?
merci
-- Jacques TREPP AlbyGest
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
Merci beaucoup. Je vais tester de ce pas :)
-- Jacques TREPP AlbyGest
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
jacques trepp
>>
ci après une fonction qui permet d'executer un fichier script sql. Il y a une transaction, et tu pourras t'en inspirer ...car j'ai rien compris à tes touches ;-) Là seule chose qui m'a fait frémir, c'est "les clés sont une concaténation des différentes touches ..." Bien sûr ce ne sont pas tes clés primaires n'est ce pas ? ... car "pas de signifiants dans un identifiant" où j'te cause plus na !
salut Eric, rassures-toi, quand je dis concaténation, ça n'est pas dans le sens de la clé composée à la windev. ;) En fait, ça veut dire que la clé primaire = 110221 correspond à la 21ème touche du plan 2 de la 10ème touche du premier plan. c'est une méthode que j'utilise en tactile depuis des années, et qui fonctionne très bien. Pour ne pas troubler d'avantage mes explications, j'ai arrété à 2 plans. En réalité, il y en a 3 ! ça me permet de gérer en théorie 81*81*81 touches.
Merci
-- Jacques TREPP AlbyGest
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
>>
ci après une fonction qui permet d'executer un fichier script sql. Il
y a une transaction, et tu pourras t'en inspirer ...car j'ai rien
compris à tes touches ;-)
Là seule chose qui m'a fait frémir, c'est "les clés sont une
concaténation des différentes touches ..."
Bien sûr ce ne sont pas tes clés primaires n'est ce pas ? ... car "pas
de signifiants dans un identifiant" où j'te cause plus na !
salut Eric,
rassures-toi, quand je dis concaténation, ça n'est pas dans le sens de la
clé composée à la windev. ;)
En fait, ça veut dire que la clé primaire = 110221 correspond à la 21ème
touche du plan 2 de la 10ème touche du premier plan. c'est une méthode que
j'utilise en tactile depuis des années, et qui fonctionne très bien.
Pour ne pas troubler d'avantage mes explications, j'ai arrété à 2 plans. En
réalité, il y en a 3 !
ça me permet de gérer en théorie 81*81*81 touches.
Merci
--
Jacques TREPP
AlbyGest
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
ci après une fonction qui permet d'executer un fichier script sql. Il y a une transaction, et tu pourras t'en inspirer ...car j'ai rien compris à tes touches ;-) Là seule chose qui m'a fait frémir, c'est "les clés sont une concaténation des différentes touches ..." Bien sûr ce ne sont pas tes clés primaires n'est ce pas ? ... car "pas de signifiants dans un identifiant" où j'te cause plus na !
salut Eric, rassures-toi, quand je dis concaténation, ça n'est pas dans le sens de la clé composée à la windev. ;) En fait, ça veut dire que la clé primaire = 110221 correspond à la 21ème touche du plan 2 de la 10ème touche du premier plan. c'est une méthode que j'utilise en tactile depuis des années, et qui fonctionne très bien. Pour ne pas troubler d'avantage mes explications, j'ai arrété à 2 plans. En réalité, il y en a 3 ! ça me permet de gérer en théorie 81*81*81 touches.
Merci
-- Jacques TREPP AlbyGest
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.690 / Virus Database: 451 - Release Date: 22/05/2004
jacques trepp
j'ai testé : ça marche ! merci encore
-- Jacques TREPP AlbyGest
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.691 / Virus Database: 452 - Release Date: 26/05/2004
j'ai testé : ça marche !
merci encore
--
Jacques TREPP
AlbyGest
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.691 / Virus Database: 452 - Release Date: 26/05/2004