Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 22/04/2011, 11h41   #1
Membre habitué
 
Inscription : mai 2007
Messages : 691
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : mai 2007
Messages : 691
Points : 146
Points : 146
Par défaut Assigner un générateur depuis une variable

bonjour,

je fais de l'import de données depuis des tables paradox et je voulais assigner un générateur depuis une variable "compteur" comme indiqué ci dessous:

Code :
1
2
3
4
5
6
7
 
ibsql1.Close;
ibsql1.SQL.Clear;
ibsql1.SQL.ADD('set generator GEN_L_BONREC_ID to :gen');
ibsql1.ParamByName('gen').AsInteger:=compteur;
ibsql1.ExecQuery;
ibtransaction1.Commit;
mais cela ne fonctionne pas, j'ai l'impression qu'une requête paramétrée ne fonctionne pas avec la commande "set generator to .."

est ce qu'il y a une autre solution ?

merci
looping est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2011, 08h28   #2
Membre éprouvé
 
Inscription : janvier 2009
Messages : 301
Détails du profil
Informations personnelles :
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2009
Messages : 301
Points : 454
Points : 454
Bonjour,

Pour obtenir une valeur du générateur, la requête doit être :

Code :
SELECT GEN_ID(GEN_L_BONREC_ID, 1) AS pIndex FROM RDB$DATABASE
La modification de votre code peut se faire ainsi :
Code :
1
2
3
4
5
6
ibsql1.Close;
ibsql1.SQL.Clear;
ibsql1.SQL.ADD('SELECT GEN_ID(GEN_L_BONREC_ID, 1) as pIndex FROM RDB$DATABASE');
ibsql1.Open;
VariableRecupération := ibsql1.FieldByName('pPkIndex').AsInteger;
ibsql1.Close
Tout ceci peut s'intégrer dans une fonction.

A+
seabs 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 12h40.


 
 
 
 
Partenaires

Hébergement Web