Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Erreur 'CREATE TABLE' is not allowed within a multi-statement transaction in the 'tempdb' database...
Je suis en train de développer une nouvelle fonction dans une appli existente en PB 9.0.3 et Sybase ASE 12.3.
J'ai une window avec une datawindow qui fait appel à une procédure stockée dans laquelle je crée une table temporaire pour traiter ma requête. Quand je lance mon application, sur le retrieve lancé dans ma window, j'ai le message cité au début.
Pourtant quand je fait le retrieve de ma datawindow sous PB, tout se passe bien.
Que dois-je faire sans bouleverser le traitement existant ?
Dernière modification par lh (05-05-2010 12:45:56)
Hors ligne
hello,
tu ne peux pas creer une table temporaire dans une transaction BEGIN TRAN....
il faudrait la creer avant de lancer ta procédure.
Hors ligne
Ton problème vient certainement de la gestion de l'AutoCommit par l'objet Transaction. F1 est ton ami, en particulier la rubrique "AutoCommit database preference" :
F1 a écrit:
(...)
Therefore, to execute DDL statements or stored procedures containing DDL statements in a SQL Server database, you must set AutoCommit to true to issue the DDL statements outside the scope of a transaction. You should, however, set AutoCommit back to false immediately after executing the DDL statements.
(...)
Hors ligne
Merci, tout est OK avec SQLCA.Autocommit = TRUE avant le retrieve et SQLCA.Autocommit = FALSE après
Hors ligne
Pages: 1