PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → TRANSACTION SQL SERVER [WD8] URGENT SVP !!!
TRANSACTION SQL SERVER [WD8] URGENT SVP !!!
Débuté par cd_770, 30 aoû. 2004 14:00 - 5 réponses
Posté le 30 août 2004 - 14:00
Bonjour à tous,
Je dois écrire un lot d'écritures comptables sous SAGE SQL.
Pour les insérer ça marche bien.

Mais je dois prévoir le plantage. Il faut que je fasse une transaction avec
un COMMIT ou un ROLLBACK .
Je ne sais pas comment définir une transaction et savoir si tout est OK ou
KO !

Quelqu'un peut il m'aider pour le faire.
Ceci est hélas urgent.
Je vous remercie tous d'avance

Cordialement,
Posté le 30 août 2004 - 15:29
Pour pouvoir te répondre, précise quelle méthode tu utilise pour l'accés aux
bases SQL (fonctions HF avec analyse ou requetes, ...)

"CDSOFT" <cd_770@hotmail.com> a écrit dans le message de news:
41344d17@news.pcsoft.fr...

Bonjour à tous,
Je dois écrire un lot d'écritures comptables sous SAGE SQL.
Pour les insérer ça marche bien.

Mais je dois prévoir le plantage. Il faut que je fasse une transaction

avec
un COMMIT ou un ROLLBACK .
Je ne sais pas comment définir une transaction et savoir si tout est OK ou
KO !

Quelqu'un peut il m'aider pour le faire.
Ceci est hélas urgent.
Je vous remercie tous d'avance

Cordialement,

Posté le 30 août 2004 - 16:11
Merci de m'aider

j'utilise des requetes avec des ordres comme :

SI SQLConnecte("Acces Sage", "", "", "", "ODBC").....
-----------------------
SI SQLExec(" SET ARITHABORT ON", "RECHCLIENTPARNOM") ALORS
// Traitement de la requête
SINON
// Échec de la requête : affichage d'un message explicatif
SQLInfoGene("RECHCLIENTPARNOM")
Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
FIN
SQLFerme("RECHCLIENTPARNOM")

SI SQLExec(" Exec _Pro_InsertEcr_Test ", "RECHCLIENTPARNOM") ALORS
// Traitement de la requête
Info("Insert OK")
SINON
// Échec de la requête : affichage d'un message explicatif
SQLInfoGene("RECHCLIENTPARNOM")
Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
FIN
SQLFerme("RECHCLIENTPARNOM")



"Frédéric ISTAS" <FIstas@Thg.fr> a écrit dans le message de
news:41346115@news.pcsoft.fr...

Pour pouvoir te répondre, précise quelle méthode tu utilise pour l'accés

aux
bases SQL (fonctions HF avec analyse ou requetes, ...)

"CDSOFT" <cd_770@hotmail.com> a écrit dans le message de news:
41344d17@news.pcsoft.fr...

Bonjour à tous,
Je dois écrire un lot d'écritures comptables sous SAGE SQL.
Pour les insérer ça marche bien.

Mais je dois prévoir le plantage. Il faut que je fasse une transaction
avec

un COMMIT ou un ROLLBACK .
Je ne sais pas comment définir une transaction et savoir si tout est OK

ou
KO !

Quelqu'un peut il m'aider pour le faire.
Ceci est hélas urgent.
Je vous remercie tous d'avance

Cordialement,



Posté le 30 août 2004 - 19:23
SQLExec("BEGIN TRANSACTION TRANSAC1","Query512") pour débuter la transaction
SQLExec("ROLLBACK TRANSACTION TRANSAC1","Query512") pour l'annuler
SQLExec("COMMIT TRANSACTION TRANSAC1","Query512") pour la valider


"CDSOFT" <cd_770@hotmail.com> a écrit dans le message de
news:41346bd5@news.pcsoft.fr...

Merci de m'aider

j'utilise des requetes avec des ordres comme :

SI SQLConnecte("Acces Sage", "", "", "", "ODBC").....
-----------------------
SI SQLExec(" SET ARITHABORT ON", "RECHCLIENTPARNOM") ALORS
// Traitement de la requête
SINON
// Échec de la requête : affichage d'un message explicatif
SQLInfoGene("RECHCLIENTPARNOM")
Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
FIN
SQLFerme("RECHCLIENTPARNOM")

SI SQLExec(" Exec _Pro_InsertEcr_Test ", "RECHCLIENTPARNOM") ALORS
// Traitement de la requête
Info("Insert OK")
SINON
// Échec de la requête : affichage d'un message explicatif
SQLInfoGene("RECHCLIENTPARNOM")
Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
FIN
SQLFerme("RECHCLIENTPARNOM")



"Frédéric ISTAS" <FIstas@Thg.fr> a écrit dans le message de
news:41346115@news.pcsoft.fr...

Pour pouvoir te répondre, précise quelle méthode tu utilise pour l'accés
aux

bases SQL (fonctions HF avec analyse ou requetes, ...)

"CDSOFT" <cd_770@hotmail.com> a écrit dans le message de news:
41344d17@news.pcsoft.fr...

Bonjour à tous,
Je dois écrire un lot d'écritures comptables sous SAGE SQL.
Pour les insérer ça marche bien.

Mais je dois prévoir le plantage. Il faut que je fasse une transaction
avec

un COMMIT ou un ROLLBACK .
Je ne sais pas comment définir une transaction et savoir si tout est

OK
ou
KO !

Quelqu'un peut il m'aider pour le faire.
Ceci est hélas urgent.
Je vous remercie tous d'avance

Cordialement,





Posté le 30 août 2004 - 19:24
Dans ce cas, rien de plus simple

En début de traitement tu fais un SQLEXEC("BEGIN TRAN
NomTransaction","REQUETE")

Si tous tes SQLEXEC de MAJ sont OK tu fais un SQLEXEC("COMMIT TRAN
NomTransaction","REQUETE"

Sinon SQLEXEC("ROLLBACK TRAN NomTransaction","REQUETE") pour annuler

Pour information, ta méthode n'est plus d'actualité en WD8 (SQLConnecte,
SQLExec)

Tu devrais utiliser HOuvreConnexion et HExecuteRequeteSql (pour
HExecuteRequeteSql, tu dois préciser absolument un paramètre
HRequeteSansCorrection qui indique de ne pas analysé la requete avec
l'analyse windev)

L'avantage est que entre autre, au lieu de faire des SQLCol(NomReq,52) !!!
tu peux simplement écrire NomReq.NomColonne

"CDSOFT" <cd_770@hotmail.com> a écrit dans le message de news:
41346bd5@news.pcsoft.fr...

Merci de m'aider

j'utilise des requetes avec des ordres comme :

SI SQLConnecte("Acces Sage", "", "", "", "ODBC").....
-----------------------
SI SQLExec(" SET ARITHABORT ON", "RECHCLIENTPARNOM") ALORS
// Traitement de la requête
SINON
// Échec de la requête : affichage d'un message explicatif
SQLInfoGene("RECHCLIENTPARNOM")
Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
FIN
SQLFerme("RECHCLIENTPARNOM")

SI SQLExec(" Exec _Pro_InsertEcr_Test ", "RECHCLIENTPARNOM") ALORS
// Traitement de la requête
Info("Insert OK")
SINON
// Échec de la requête : affichage d'un message explicatif
SQLInfoGene("RECHCLIENTPARNOM")
Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
FIN
SQLFerme("RECHCLIENTPARNOM")



"Frédéric ISTAS" <FIstas@Thg.fr> a écrit dans le message de
news:41346115@news.pcsoft.fr...

Pour pouvoir te répondre, précise quelle méthode tu utilise pour l'accés
aux

bases SQL (fonctions HF avec analyse ou requetes, ...)

"CDSOFT" <cd_770@hotmail.com> a écrit dans le message de news:
41344d17@news.pcsoft.fr...

Bonjour à tous,
Je dois écrire un lot d'écritures comptables sous SAGE SQL.
Pour les insérer ça marche bien.

Mais je dois prévoir le plantage. Il faut que je fasse une transaction
avec

un COMMIT ou un ROLLBACK .
Je ne sais pas comment définir une transaction et savoir si tout est

OK
ou
KO !

Quelqu'un peut il m'aider pour le faire.
Ceci est hélas urgent.
Je vous remercie tous d'avance

Cordialement,





Posté le 30 août 2004 - 19:32
Merci à vous tous pour vos aides.

j'ai aussi fait des tests avec sqlTransaction()
Et cela marche aussi tres bien

Mais merci encore pour la syntaxe avec les commandes SQL
A+

"Frédéric ISTAS" <FIstas@Thg.fr> a écrit dans le message de
news:41349812@news.pcsoft.fr...

Dans ce cas, rien de plus simple

En début de traitement tu fais un SQLEXEC("BEGIN TRAN
NomTransaction","REQUETE")

Si tous tes SQLEXEC de MAJ sont OK tu fais un SQLEXEC("COMMIT TRAN
NomTransaction","REQUETE"

Sinon SQLEXEC("ROLLBACK TRAN NomTransaction","REQUETE") pour annuler

Pour information, ta méthode n'est plus d'actualité en WD8 (SQLConnecte,
SQLExec)

Tu devrais utiliser HOuvreConnexion et HExecuteRequeteSql (pour
HExecuteRequeteSql, tu dois préciser absolument un paramètre
HRequeteSansCorrection qui indique de ne pas analysé la requete avec
l'analyse windev)

L'avantage est que entre autre, au lieu de faire des SQLCol(NomReq,52) !!!
tu peux simplement écrire NomReq.NomColonne

"CDSOFT" <cd_770@hotmail.com> a écrit dans le message de news:
41346bd5@news.pcsoft.fr...

Merci de m'aider

j'utilise des requetes avec des ordres comme :

SI SQLConnecte("Acces Sage", "", "", "", "ODBC").....
-----------------------
SI SQLExec(" SET ARITHABORT ON", "RECHCLIENTPARNOM") ALORS
// Traitement de la requête
SINON
// Échec de la requête : affichage d'un message explicatif
SQLInfoGene("RECHCLIENTPARNOM")
Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
FIN
SQLFerme("RECHCLIENTPARNOM")

SI SQLExec(" Exec _Pro_InsertEcr_Test ", "RECHCLIENTPARNOM") ALORS
// Traitement de la requête
Info("Insert OK")
SINON
// Échec de la requête : affichage d'un message explicatif
SQLInfoGene("RECHCLIENTPARNOM")
Erreur("Erreur" + SQL.Erreur + "dans la requête : ", SQL.MesErreur)
FIN
SQLFerme("RECHCLIENTPARNOM")



"Frédéric ISTAS" <FIstas@Thg.fr> a écrit dans le message de
news:41346115@news.pcsoft.fr...

Pour pouvoir te répondre, précise quelle méthode tu utilise pour

l'accés
aux
bases SQL (fonctions HF avec analyse ou requetes, ...)

"CDSOFT" <cd_770@hotmail.com> a écrit dans le message de news:
41344d17@news.pcsoft.fr...

Bonjour à tous,
Je dois écrire un lot d'écritures comptables sous SAGE SQL.
Pour les insérer ça marche bien.

Mais je dois prévoir le plantage. Il faut que je fasse une

transaction
avec
un COMMIT ou un ROLLBACK .
Je ne sais pas comment définir une transaction et savoir si tout est
OK

ou
KO !

Quelqu'un peut il m'aider pour le faire.
Ceci est hélas urgent.
Je vous remercie tous d'avance

Cordialement,