Passar um array como parametro para um TStoredProc
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
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
Curtidas 0
Respostas
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.
Ele cria os parametros conforme os tipos (do bd) suportados.
Nunca tentei passar um tipo array craido no Oracle.
GOSTEI 0
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
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
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
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