Problème avec un set length

cs_TierSeN Messages postés 2 Date d'inscription mardi 19 juillet 2005 Statut Membre Dernière intervention 29 août 2005 - 19 juil. 2005 à 11:28
  - 19 juil. 2005 à 16:01
Bonjour tous le monde mon problème et délicat et une des solution qui consiste a créer un type me bloque.
J'ai en fait une unit dans laquelle je déclare un tableau

U_Interface
-------------------
var
Tab_Res: Array of String;

dans le code de cette même Unit je souhaite affecter la taille de se tableau et le remplir avec une procédure définie dans une autre Unit

Begin
....
SelectDATA(ChampsR,TableR,Tab_Res,Nbr_res);
End;

La procédure SelectDATA est dans une Unit différente

U_BDD
---------

Procedure SelectDATA(ChampsR : String; TableR : String; var Tab_Res : Array of String ;var Nbr_res : integer);
var laRequete : T_RequetePerso;
cds : TClientDataSet;


begin
// On va chercher le numéro de toutes les valeurs du champs pour une table donnée
laRequete.libelleRequete := ' select ' + ChampsR
+ ' from ' + TableR ;
setlength(laRequete.params,0);


dm.Function_ExecuterRequete(laRequete, false, true,true, cds);


// On initialise le nombre de résultats
Nbr_res:=0;


// On insère les résultats dans un tableau pour s'en servir par la suite
while not (cds.Eof) do
begin
setlength(Tab_res,length(Tab_Res)+1);
Tab_res[Nbr_res]:=cds[ChampsR];
Nbr_res:=Nbr_res+1;
cds.Next;
end;
cds.Free;


end;

Je dois affecter la longueur du tableau dynamiquement et le remplir au fur et à mesure mais j'ai le même souci qu'une personne qui avait posté

Sujet : Manipuler un tableau dynamique dans une procédure [ J'AI BESOIN D'AIDE !!!! :O ]

=> Types incompatibles

La solution de création d'un type et la déclaration en var dans ma U_Interface ne résout pas le problème je suis donc pas mal bloqué l'appel de la fonction se fait bien mais j'ai le message d'erreur suivant

Je vous remercie par avance de votre réponse.

1 réponse

G finalement trouvé une solution je met en uses au niveau implémentation mon Unit et je peux manipuler les variables dans l'autre sans aucun problème. Mais si quelqu'un a une astuce je suis preneur.

Merci
0