como usar ADOStoredProc em tempo de execução

Delphi

28/09/2006

galera,
preciso instanciar uma ADOStoredProc e atribuir os parametros,

tentei assim:
// crio a instancia
// seto ao TADOConnection
// ADOStoredProc.ProcedureName := ´MinhaProc´;
ADOStoredProc.Parameters.ParamByName(´ID´).Value := FID;


no momento que tento atribuir um valor ao parametro me retorna um erro:
[color=red:9b45643a22] ´ID´ not found[/color:9b45643a22]


mais exite este parametro na minha Proc.

se alguem puder me dar uma ajuda eu agradeço !!!


Fabiano Góes

Fabiano Góes

Curtidas 0

Respostas

Rjun

Rjun

28/09/2006

Quando você cria esses objetos em runtime, você precisar criar e definir cada parâmetro.


GOSTEI 0
Rjun

Rjun

28/09/2006

Por exemplo:

ADOStoredProc.Parameters.CreateParameter(´@ID´, ftInteger, pdInput, 0, FID); 



GOSTEI 0
Fabiano Góes

Fabiano Góes

28/09/2006

uma duvida:

function TParameters.CreateParameter(const Name: WideString; DataType: TDataType; Direction: TParameterDirection; Size: Integer; Value: OleVariant): TParameter;

[b:67ea892170]o parametro ´Size: Integer´ é o mesmo size do Field em questao no banco de dados ?[/b:67ea892170]

estou perguntando porque quando coloco uma TADOStoredProc em um Form, após setar o componente ao banco e o ProcedureName os parametros já são configurados automaticamente porem o ´Size´ dos parametros nao batem com o ´Size´ dos Fields no Banco de Dados.

desde já agradeço a tenção !!!


GOSTEI 0
Rjun

Rjun

28/09/2006

Se não me engano o size é o tamanho em bytes do tipo de dado que você está definindo. Por exemplo, se o seu parametro for um VarChar de 100 então o size é 100. No SQL Server, se o parâmetro for int seu size será 4, por que um inteiro tem 4 bytes.


GOSTEI 0
Fabiano Góes

Fabiano Góes

28/09/2006

aproveitando o gancho sobre objeto em RunTime,

[b:42f2a120b4]como usar eventos do objeto em RunTime ?[/b:42f2a120b4]

por exemplo:
[b:42f2a120b4]como usar o evento AfterPost de um ADOQuery ?[/b:42f2a120b4]

Desde já agradeço a atenção :lol: !!!!


GOSTEI 0
POSTAR