Bonjour.
Une table dispose d'un attribut défini comme une tableau de smallint,
smallint[3] par exemple.
Je n'ai pas trouvé la syntaxe INSERT pour indiquer les valeurs de tableau !!
INSERT INTO TABLE VALUES ( ??? )
Merci.
Bonjour.
Une table dispose d'un attribut défini comme une tableau de smallint,
smallint[3] par exemple.
Je n'ai pas trouvé la syntaxe INSERT pour indiquer les valeurs de tableau !!
INSERT INTO TABLE VALUES ( ??? )
Merci.
As-tu essayé avec?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ...VALUES ( [1, 6, 9])
J'ai essayé cette syntaxe dans l'interpréteur de script de IBExpert.
Mais cela n'a rien donné.
J'ai tenté
Mais rien ne passe pour le moment et pas grand chose de commenté sur le sujet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 VALUES ( (1,2,3) ) VALUES ( [1,2,3] ) VALUES( {1,2,3} ) VALUES( '{1,2,3}' ) // syntaxe PostGresql etc...
J'avais extrait ça du embedSQL (§ Insert), je te le livre complet et en VO:Envoyé par qi130
Si la syntaxe ne marche pas en direct comme je le pensais, il faut donc suivre ce guide....Inserting data into an array
INSERT can be used to insert data into an array column. The data to insert must exactly fill the entire array, or an error can occur.
To insert data into an array, follow these steps:
1. Declare a host-language variable to hold the array data. Use the BASED ON clause as a handy way of declaring array variables capable of holding data to insert into the entire array. For example, the following statements create three such variables:
EXEC SQL
BEGIN DECLARE SECTION;
BASED ON TABLE1.CHAR_ARR char_arr;
BASED ON TABLE1.INT_ARR int_arr;
BASED ON TABLE1.FLOAT_ARR float_arr;
EXEC SQL END DECLARE SECTION;
2. Load the host-language variables with data.
3. Use INSERT to write the arrays. For example,
EXEC SQL
INSERT INTO TABLE1 (NAME, CHAR_ARR, INT_ARR, FLOAT_ARR)
VALUES (’Sample’, :char_arr, :int_arr, :float_arr);
4. Commit the changes:
EXEC SQL COMMIT;
IMPORTANT When inserting data into an array column, provide data to fill all array elements, or the results will be unpredictable.
Donc si je comprends bien il n'est pas possible de manipuler les tableaux directement en exécutant un ordre SQL INSERT.
Il faut passer par un traitement comme une procédure stockée par exemple.
Exacte de la même mannière que pour les type BLOB on ne peux les manipuler simplement avec du SQL.
Pour les array, vous pouvez affecter les valeurs en utilisant les fields. Le field associé à votre colonne array sera de type TArrayField. Je vous invite à consulter la doc de votre langage de programmation sur leur manipulation (Delphi ? BC++ ? autre ?)
Et en second conseil, éviter de définir et d'utiliser ce type de données. Car plus difficile a manipuler, non standard (si un jour vous voulez que vottre application tourne sous un autre SGBD, il n'est pas certain que celui ci accepte de type de données).
Merci.
Compte tenu des problèmes que cela pose, je pense que je vais me tourner vers une solution plus simple.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager