|
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,
|
| |
| |
| | | |
|
| | | | |
| | |
|