Passar um array como parametro para um TStoredProc

Delphi

21/01/2004

Pessoal,

Num TStoredProc (StoredProc1) , eu defino um parametro com o DataType = ftArray .
O que eu gostaria de saber é como passar um array como parametro para essa procedure .


Allan


Allan

Allan

Curtidas 0

Respostas

Motta

Motta

21/01/2004

O Delphi mesmo se encarrega de criar as parametros quando ele reconhece e acessa a sp em tempo de desenho.

Ele cria os parametros conforme os tipos (do bd) suportados.

Nunca tentei passar um tipo array craido no Oracle.


GOSTEI 0
Allan

Allan

21/01/2004

Quando são parametros tipo String, Integer, etc , eu sei que ele já reconhece os parametros . Mas imagine vc no Oracle ter algo do tipo :

type Mycollection is table of number(10) index by binary_integer;

p_Mycollection Mycollection;

procedure le_collection(P_Mycollection in Mycollection) ;

Onde o Mycollection é tipo um array ilimitado que armazena inteiros . E a Procedure le_collection , tem como parametro esse Mycollection, que vai receber um coleção de interos . Aí no delphi eu queira mandar vários inteiros (array de inteiros) , para essa procedure .Aí vem os problemas no Delphi ele não reconhece esse parametro. Aí eu adicionei o parametro na mão e defini como ftarray o tipo do parametro.
Só que aí não tem como eu passar como parametro algo do tipo :
´ storedprocedure.parambyname(´parametro´).Asarray := array ; ´
Pq no delphi ele não tem ´AsArray´ , e essa é a minha dúvida.

Allan


GOSTEI 0
Motta

Motta

21/01/2004

tente o seguinte :

storedprocedure.parambyname(´parametro´).Params[0].Value := <array>;


Value é Variant, mas acho que não vai funcionar.
-------------------------------------

Pq vc não passa o parametro como String com um separador e dentro da sp vc separa

algo do tipo ´1;2;3;4,5;556;78;0,123´

Meio tosco, mas funciona sem problemas de compatibilidade


GOSTEI 0
POSTAR