Fórum Passar um array como parametro para um TStoredProc #208076

21/01/2004

0

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

Responder

Posts

21/01/2004

Motta

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.


Responder

Gostei + 0

21/01/2004

Allan

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


Responder

Gostei + 0

21/01/2004

Motta

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar