Vous n'êtes pas identifié(e).
Pages : 1
Hello tout le monde,
J'utilise une base PostgreSQL 8.4 avec un client lourd en C#.
Mon application, à un moment donné, exécute une instruction en ligne de commande. Mon souci est que cette instruction doit être exécutée dans le cadre d'une transaction particulière (initiée dans mon client lourd).
En gros j'exécute mon instruction de la sorte :
Process myProcess = new process();
ProcessStartInfo infos = new ProcessStartInfo();
infos.Arguments = xxxxxx
infos.FileName = xxxxxx
.......myProcess.StartInfo = infos;
myProcess.Start();
myProcess.WaitForExit();
Mais je souhaite que le select que j'effectue dans mon instruction soit dans une transaction que j'ai initiée ultérieurement.
Comment faire ?
Merci d'avance pour votre aide
Hors ligne
Bonjour,
Pour faire une transaction avec npgsql, tout est expliqué dans la documentation :
http://npgsql.projects.postgresql.org/d … anual.html
C'est l'exemple qui contient :
NpgsqlTransaction t = conn.BeginTransaction();
Marc.
Hors ligne
Je ne connais pas C# mais il me semble que vous lancez un nouveau processus. Si c'est bien le cas, ils auront chacun une connexion, ce qui fait que les requêtes lancées par l'un et par l'autre ne pourront pas être dans la même transaction.
Guillaume.
Hors ligne
Marc : Merci mais le problème n'est pas de créer une transaction, j'ai déjà fait cela.
ce que je souhaite c'est utiliser cette transaction pour que mon instruction en ligne de commande soit faite dans cette transaction.
Administrator : Aïe...
Hors ligne
Il est totalement impossible de garder la même transaction dans l'instruction en ligne de commande. Il s'agit d'un autre programme, qui aura donc sa propre session à la base de données.
Marc.
Hors ligne
Il n'existe donc aucun moyen d'exécuter cette instruction (qui est l'instruction \copy) dans une transaction déjà existante ?
Hors ligne
Non.
Enfin si, rien ne vous empêche d'effectuer le COPY dans votre connexion npgsql.
C'est dans le paragraphe "Fast bulk data copy into a table", toujours dans le même document.
Marc.
Hors ligne
Pages : 1