|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : mars 2004 Messages : 33 ![]() |
Bonjour,
SGBD : FireBird 1.5 Comment passer un tableau d'entier comme parmètre dans une procédure stocké (et que retourne un tableau de chaine de caractère)? c'est à peu près comme celle là : Code :
|
||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : mai 2005 Messages : 2 ![]() |
Y a personne qui peut répondre?
Ca m'interresse aussi! |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Un tableau ce n'est pas ce qu'il y a de plus facile a manipuler en SQL.
De plus vous ne pourrez faire des tableau dynamique (taille variable) ce qui limite pas mal leur interret du coup... Et finalement ces déclarations : sont utilisables pour la déclaration de colonne de tables mais pas dans les PS. Comment lire un tableau dans un PS allez vous me dire... Et bien en décomposant le tableau élément par élément : Code :
|
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mai 2005 Messages : 2 ![]() |
Merci pour la réponse!
J'espérais qu'il y avait un moyen de déclarer des variables de type tableau de qqch... Apparemment, ce n'est pas possible, on est quasiment obligé de passer par une table, dommage... |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 379 ![]() |
au sujet des tableaux, j'ai eu le même genre de question et j'ai contourné la chose en déclarant un type varchar(32760) que je remplis avec les données, et à l'autre bout, dans l'application, je reconstruis le tableau (c'est donc une sérialisation des données)
le gain de temps dans mon cas fut fabuleux! un traitement de plus de 2 heures et passé à quelques minutes! (à cause de sous-requêtes qui sont passées dans la procédure) mais il faut dire que la tâche demandée était (est) assez tordue... donc, cela vaut la peine de consacrer un peu de temps à la question, mais avant de ce lancer, il faut absolument étudier la question et voir si il n'existe pas d'autres solutions! |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : mars 2004 Messages : 33 ![]() |
Merci pour tous,
Mais !! Dans une PS, on ne peut declarer les tableaus ni comme paramètre d'entrée, ni comme paramètre de sortie!!!?? Juste manipulation à l'interieur PS! elle devient initule donc! Mais pourquoi ? |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 379 ![]() |
les procédures stockées ne sont pas inutiles (si je comprend la question/affirmation) elles permettent de résoudre bien des problèmes de manières élégantes et très performantes, même si tout n'est pas parfait en matière de paramètre ou de tableau.
cela dit utiliser un type char ou varchar pour transmettre des tableaux fonctionne parfaitement, pour info, j'ai développée une udf qui parse les chaînes et retourne les mots dans une structure de type tableau et j'utilise le type char() pour balader les tableaux et cela fonctionne parfaitement. il y a certainement une solution alternative à ton problème, par exemple, si tu n'a que des valeurs entières, il serait facile de construire une udf qui recoit une valeur entière et retourne la valeur en binaire qui peut-être contenu dans un char(4) (ou en code "AA" et dans ce cas, la chaîne fait 8 caractères) et donc plusieurs valeurs dans un multiple de 4 (ou de 8 en code "AA") qu'en pense-tu? une autre approche c'est d'utiliser la fonction chr() de rfunc et de décomposer les valeurs en caractères pour les transmettres ensuite dans une chaîne. tu vois, il existe des solutions. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com