Fórum ADOStoredProcedure #213464

12/02/2004

0

Estou utilizando o componente ADOStoredProcedure da paleta ADO, para fazer uma chamada a uma Procedure no SQL Server.
A procedure esta funcionando, mas não consigo chama-la pelo Delphi!
A procedure, recebe 4 parametros ( string, todos eles ) e ele diz que não encontra o parametro!

O que estou fazendo de errado? :roll:

1. Adciono o Componente ADOStoredProcedure!
2. Crio a string de conexão com o SQL-Server ( propriedade: ConnectionString )
3. Seleciono o nome da Procedure ( propriedade: procedureName )

Obrigado.


Jack_loco

Jack_loco

Responder

Posts

12/02/2004

Cbritojunior

Verifique na propriedade Parameters do ADOStoredProcedure se todos os seus parametros estão lá. Além de verificar se os tipos de parametros estão corretos. Se todos são strings como vc disse, todos devem estar como ftString. Verifique também o size do campo. Se ainda sim vc tiver problemas acesse os parametros pelos seus índices, mas lembre-se sempre o primeiro parametro de procedures é o @RETURN_VALUES, portanto o seu primeiro parametro será 1.

with ADOStoredProcedure
begin
Parameter[1].Value := ...;
.
.
Paramater[n].Value : ...;
ExecProc;
end;


Responder

Gostei + 0

12/02/2004

Cbritojunior

outra coisa....
além de ter esquecido do ´do´ na intrução, não se esqueça
que todo parâmetro ou variável em Transact-SQL começam por ´@´. Portanto quando vc chamar o parametro pelo nome coloque ´@nome´


Responder

Gostei + 0

16/02/2004

Jack_loco

procedure TformMain.IWButton1Click(Sender: TObject);
begin
ADOStoredProc1.ProcedureName := ´CONSULTA_PRODUTIVIDADE_SECAO´;
ADOStoredProc1.Parameters.AddParameter.Name := ´@RETURN_VALUE´;
ADOStoredProc1.Parameters.AddParameter.DataType := ftInteger;
ADOStoredProc1.Parameters.AddParameter.Direction := pdReturnValue;
ADOStoredProc1.Parameters.AddParameter.Name := ´@CODAREA´;
ADOStoredProc1.Parameters.AddParameter.DataType := ftWideString;
ADOStoredProc1.Parameters.AddParameter.Direction := pdInput;
ADOStoredProc1.Parameters.AddParameter.Name := ´@DATAINICIAL´;
ADOStoredProc1.Parameters.AddParameter.DataType := ftDateTime;
ADOStoredProc1.Parameters.AddParameter.Direction := pdInput;
ADOStoredProc1.Parameters.AddParameter.Name := ´@DATAFINAL´;
ADOStoredProc1.Parameters.AddParameter.DataType := ftDateTime;
ADOStoredProc1.Parameters.AddParameter.Direction := pdInput;
ADOStoredProc1.Parameters.ParamByName(´@CODAREA´).Value := cbosetor.Text;
ADOStoredProc1.Parameters.ParamByName(´@DATAINICIAL´).Value := dtpde.Date;
ADOStoredProc1.Parameters.ParamByName(´@DATAFINAL´).Value := dtpate.Date;

ADOStoredProc1.Prepared;
ADOStoredProc1.ExecProc;
end;

Ocorre o seguinte erro, quando executo:

´Parameter object is improperly defined. Inconsistent or incomplete information was provided´

Alguem sabe o que devo fazer?

Essa StoredProcedure é definida todos os parametros e propriedades em run-time, pois a utilizo para acessar outras StoredProcedures!!!


Responder

Gostei + 0

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

Aceitar