effectuer une requete insert avec 'values' ET 'select'
bonjour à tous,
je souhaiterai effectuer une requete d'insertion avec ajout d'éléments directement et à l'aide d'une table.
il est possible de faire un insert à l'aide d'une table :
Code:
1 2
|
query1.sql.add('INSERT INTO table_client (numero, nom, prenom) SELECT tabl_pers.num, tabl_pers.name, tabl_pers.firstname FROM tabl_pers'); |
il est possible de faire un insert avec ajout direct :
Code:
1 2
|
query1.sql.add('INSERT INTO table_client(numero, nom, prenom) VALUES (13, "dupont", "bernard")'); |
mais je voudrais concaténer ces deux possibilités. Ainsi, il est également possible de faire :
Code:
1 2
|
query1.sql.add('INSERT INTO table_client(numero, nom, prenom) SELECT tabl_pers.num, "dupont", tabl_pers.firstname FROM tabl_pers'); |
mais le problème se pose pour les entiers. En effet, le code suivant ne fonctionne pas et me génére une erreur 'différence de type dans une expression' :
Code:
1 2
|
query1.sql.add('INSERT INTO table_client(numero, nom, prenom) SELECT 13, tabl_pers.name, tabl_pers.firstname FROM tabl_pers'); |
ainsi, je peux inserer des données via des enregistrements d'une table et du texte mais je ne peux pas faire la même chose avec des entiers. J'ai essayé de passer via différentes variables mais le problème reste le même :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
query1.sql.add('INSERT INTO table_client(numero, nom, prenom) SELECT :varnum, tabl_pers.name, tabl_pers.firstname FROM tabl_pers');
query1.parambyname['varnum'].asinteger := 13;
ou
query1.sql.add('INSERT INTO table_client(numero, nom, prenom) SELECT ' + 13 + ', tabl_pers.name, tabl_pers.firstname FROM tabl_pers');
ou
var_numero := 13;
query1.sql.add('INSERT INTO table_client(numero, nom, prenom) SELECT ' + var_numero + ', tabl_pers.name, tabl_pers.firstname FROM tabl_pers'); |
merci par avance pour ceux qui auraient une petite idée de comment rajouter dans un INSERT une variable à affecter de type integer.
:wink:
del.