|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : janvier 2006 Messages : 336 ![]() |
Bonjour,
qqun sait-il comment la sécurité d'une transaction avec InterBase ? Notamment, comment bloquer une table ? Ex : je veux insérer une ligne puis faire un 'SELECT' pour ramener le dernier identifiant créé par le serveur. Mais comment garantir que l'id. ramené est bien celui que j'ai créé et non pas le fait d'un autre user ? merci d'avance. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
le mieux pour cela est d'utiliser un générateur
quelle idée saugrenue de vouloir bloquer une table
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : janvier 2006 Messages : 336 ![]() |
je te précise un truc : le générateur ne te permet que de générer un ID, ce qui n'a rien à voir avec mon problème.
Le problème justement c'est de pouvoir récupérer ce dernier ID généré automatiquement lors de l'insertion d'une nouvelle ligne. 1 -tu insères avec 'INSERT' 2 -tu fais un 'SELECT id' 3 -comment être sûr, que l'id est bien celui issu de l'INSERT précédent ? En effet, un autre client a pu lui aussi faire un INSERT entre temps et donc regénérer un id. -> le mieux est donc de garantir que la table ne peut être modifiée entre ton 'INSERT' et ton 'SELECT id', mais comment ? |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
si justement cela à avoir avec ton "problème"
seul un générateur, qui fonctionne hors transaction peu te garantir l'unicité et sans avoir besoin de bloquer quoi que ce soit cela n'est pas un problème de récupérer la valeur du générateur soit en le "générant" avant puis en utilisant cette valeur dans l'insert, soit en faisant l'insert et en récupérant dans le même temps la valeur générée en utilisant avec Firebird 2 la syntaxe : Code :
INSERT INTO ... VALUES (...) [RETURNING <column_list>]
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : janvier 2006 Messages : 336 ![]() |
ah ouais, je ne connaissais pas l'option [RETURNING <col>] et pour cause, j'utilise IB 6.
Donc, il faudrait que je passe sur FB 2.0... |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
passer à FB2 très bonne idée surtout que FB2.0.1 sort cette semaine
et que IB6 ... je n'ose même pas redire pour la xième fois tout le mal que je pense de cette version digne de windows millenium, c'est tout dire.
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : janvier 2006 Messages : 336 ![]() |
Ok, merci du conseil
mais FB 2 est-il fournit avec avec un outil graphique comme IBConsole ? Qui est quand même super pratique ! |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
IBconsole ? ce dinosaure aux faibles fonctionnalités ?
il y a bien meiux depuis, et il y a le choix, pour tous les gouts, toutes les plateformes les plus populaires sont : http://www.flamerobin.org/ et ibexpert (il y a une free personal edition) http://www.ibexpert.com/ mais mon préféré est databaseworkbench http://www.upscene.com/ la liste complète est là : http://www.ibphoenix.com/main.nfs?a=...bp_admin_tools
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Inscription : janvier 2006 Messages : 336 ![]() |
je remonte ce vieux post uniquement pour remercier Philippe des conseils
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com