Vous n'êtes pas identifié(e).

#1 12/07/2010 11:13:13

sylvinhio
Membre

ligne de commande et transaction en C#

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

#2 12/07/2010 11:31:20

Marc Cousin
Membre

Re : ligne de commande et transaction en C#

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

#3 12/07/2010 11:35:26

gleu
Administrateur

Re : ligne de commande et transaction en C#

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

#4 12/07/2010 12:00:32

sylvinhio
Membre

Re : ligne de commande et transaction en C#

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

#5 12/07/2010 13:40:00

Marc Cousin
Membre

Re : ligne de commande et transaction en C#

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

#6 12/07/2010 13:59:27

sylvinhio
Membre

Re : ligne de commande et transaction en C#

Il n'existe donc aucun moyen d'exécuter cette instruction (qui est l'instruction \copy) dans une transaction déjà existante ?

Hors ligne

#7 12/07/2010 14:19:42

Marc Cousin
Membre

Re : ligne de commande et transaction en C#

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

Pied de page des forums