Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Débuter
Débuter Forum d'entraide : Débuter en base de données avec PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2012, 02h32   #1
Membre du Club
 
Inscription : décembre 2006
Messages : 183
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 183
Points : 47
Points : 47
Par défaut La commande commit ?

Bonjours,

Si j'ai bien compris la commande comit va écrire sur le disque.

Mai une fois que c'est fait plus moyen de crée une table (c'est un exemple).
j'obtiens un message du genre:
Code :
1
2
3
4
 
terminate called after throwing an instance of 'pqxx::usage_error'
  what():  Error executing query .  Attempt TO activate transaction<READ COMMITTED> which IS already closed
Abandon
je doit faire quoi pour pouvoir poursuivre les autres requêtes sql

je précise que j'utilise posgresql 8.4 sous debian squeez(stable) que j'y accède en c++ avec la lib libpqxx, mai je me ser aussi du shell si besoins

Merci d'avance
panthere noire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 09h21   #2
Membre régulier
 
Inscription : octobre 2006
Messages : 121
Détails du profil
Informations personnelles :
Âge : 61

Informations forums :
Inscription : octobre 2006
Messages : 121
Points : 90
Points : 90
Bonjour,
Avant de lancer un commit, avez vous bien lancé un "start transaction" ?
Bonne journée
MS
MarcS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 11h08   #3
Membre du Club
 
Inscription : décembre 2006
Messages : 183
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 183
Points : 47
Points : 47
bonjours, Merci pour votre réponse

je me connect a la base puis utilse

Code :
1
2
3
 
		p_connect	= new pqxx::connection(cCT.StringChar(login));
		p_work 		= new pqxx::work (*p_connect);
documentation de la lib:
pour la connection (je ne peux pas coller ici sa polluerai le forum)
http://pqxx.org/devprojects/libpqxx/...tml/Reference/
pour works
http://pqxx.org/devprojects/libpqxx/...ansaction.html

ensuite sa me permet de crée mes première tables

je vais voir a quoi correspond un start transaction
(je suis un gros débutant en base de donnée)

merci encore pour ta réponse
panthere noire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 11h14   #4
Membre régulier
 
Inscription : octobre 2006
Messages : 121
Détails du profil
Informations personnelles :
Âge : 61

Informations forums :
Inscription : octobre 2006
Messages : 121
Points : 90
Points : 90
Bonjour,
un "start transaction" débute un bloc de transaction et commit la valide.
Rollback l'invalide.
L'utilité est de s'assurer que la transaction se déroule entièrement ou pas du tout (par ex en cas de coupure de courant).
Bonne journée
MS
MarcS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 11h53   #5
Membre du Club
 
Inscription : décembre 2006
Messages : 183
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 183
Points : 47
Points : 47
j'étais pas loin works doit être rappeler pour la nouvelle transaction (attention a la suppression du pointeur pour ceux qui code en c / c++)
panthere noire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 09h07   #6
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Citation:
Envoyé par panthere noire Voir le message
Bonjours,

Si j'ai bien compris la commande comit va écrire sur le disque.
COMMIT valide une transaction. Rien à voir avec l'écriture des données sur le disque qui dans un SGBDR C/S est asynchrone.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/02/2012, 14h54   #7
Membre du Club
 
Inscription : décembre 2006
Messages : 183
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 183
Points : 47
Points : 47
Merci pour le complément
panthere noire est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h43.


 
 
 
 
Partenaires

Hébergement Web