[firebase-br] Erro de Conversão -303?
cazon em tecnolab.mus.br
cazon em tecnolab.mus.br
Qua Fev 25 21:12:48 -03 2009
Ola Pessoal td bem?
Sou novato em SP e encontrei uma dificuldade em um teste que estou fazendo.
{Firebird 2.1 + Delphi 2009}
Criei esta procedure para atualizar os dados de uma Ordem de Serviços:
SET TERM ^ ;
CREATE PROCEDURE SP_UPDATE_ORDEM (
CODIGO Integer,
RELACAO Integer,
CLIENTE Varchar(60),
EQUIPO Varchar(50),
MARCA Varchar(30),
MODELO Varchar(30))
as
Begin
if (EXISTS(SELECT ORD_CODIGO from ORDEM where (ORD_codigo = :codigo)) )
then
update ORDEM
set ORD_CODIGO = :codigo,
ORD_RELACAO = :relacao,
ORD_CLIENTE = :cliente,
ORD_EQUIPO = :equipo,
ORD_MARCA = :marca,
ORD_MODELO = :modelo
WHERE (ORD_CODIGO = :codigo);
end^
SET TERM ; ^
GRANT EXECUTE ON PROCEDURE SP_UPDATE_ORDEM TO SYSDBA;
** Codigo no delphi:
begin
with Dm.Sp_Update_Ordem do
begin
ParamByName('CODIGO').AsInteger :=
StrToInt(edtCodigo.Text);
ParamByName('RELACAO').AsInteger :=
StrToInt(edtCliente.Text);
if (txtNome.Caption = '') then
ParamByName('CLIENTE').Value := null
else
ParamByName('CLIENTE').AsString := txtNome.Caption;
if (edtEquipo.Text = '' )then
ParamByName('EQUIPO').Value := null
else
ParamByName('EQUIPO').AsString := edtEquipo.Text;
if (edtMarca.Text = '' )then
ParamByName('MARCA').Value := null
else
ParamByName('MARCA').AsString := edtMarca.Text;
if (edtModelo.Text = '' )then
ParamByName('MODELO').Value := null
else
ParamByName('MODELO').AsString := edtModelo.Text;
ExecProc;
Dm.Transaction.Commit;
end;
end;
** quando executo recebo este erro:
First chance exception at $7C812AEB. Exception class EIBInterBaseError
with message 'Dynamic SQL Error
SQL error code = -303
conversion error from string "NOME DO CLIENTE"'. Process Tecsystem.exe (404)
Alguem ja passou por algo semelhante que possa me dar uma ajuda?
Obrigado.
Mario Cezar
Mais detalhes sobre a lista de discussão lista