Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error con llamada a Stored Proc (https://www.clubdelphi.com/foros/showthread.php?t=73013)

Paulao 25-03-2011 14:33:01

Error con llamada a Stored Proc
 
Quando me voy a llamar una SP, me viene el error:
Erro ao tentar converter varchar em DateTime
Pero no lo se de onde viene este varchar. Abajo mis codigos.
Código SQL [-]
CREATE PROCEDURE [dbo].[sp_INS_LOG_INDEX_JUS](

@TIPO_EDICAO VARCHAR(20),

@NUM_EDICAO VARCHAR(10),

@DATA_EDICAO DATETIME,

@NUM_PAGINA VARCHAR(10),

@JUSTIFICATIVA TEXT,

@id bigint output

) as

begin

insert into INDEX_LOG_JUS(TIPO_EDICAO,NUM_EDICAO,DATA_EDICAO,

NUM_PAGINA,JUSTIFICATIVA) values 

(@TIPO_EDICAO,@NUM_EDICAO,@DATA_EDICAO,

@NUM_PAGINA,@JUSTIFICATIVA);

select @id = @@identity

end

Mi funcion para llamar la SP

Código SQL [-]
function TGeneralFiles.InsereJus(Tipo_Edicao, Num_Edicao: String;Data: TDateTime; Num_Pagina, Justificativa: String;
   ObjConn: TAdoConnection;ObjSp: TADOStoredProc): int64;
begin
  with ObjSp, Parameters do
  begin
    ParamByName('@TIPO_EDICAO').Value := Tipo_Edicao;
    ParamByName('@NUM_EDICAO').Value := Num_Edicao;
    ParamByName('@DATA_EDICAO').Value := Data;
    ParamByName('@NUM_PAGINA').Value := Num_Pagina;
    ParamByName('@JUSTIFICATIVA').Value := Just;
    try
      ExecProc;
      Result := ParamByName('@id').Value;
      Commit(ObjConn);
    except
      Rollback(ObjConn);
      raise;
    end;
  end;
end;

Y mis parametros
Código SQL [-]
procedure TfrmMain.BitBtn1Click(Sender: TObject);
begin
  if PodeInserir then
    FGeneralFiles.InsereJus(edtTipoEdicao.Text,edtNumEdicao.Text,edtData.DateTime,edtNumPagina.Text,FGen  eralFiles.Just,ADOConn,spJus)
  else
    ShowMessage('Alguns campos não foram preenchidos.'+#13+#10+'Favor corrigir o problema e tentar novamente');
end;
Gracias!

gatosoft 25-03-2011 19:34:46

hola Paulao,

Pues es bastante raro porque en apreciencia todo está bien...

se me ocurren dos cosas:

1) Intenta asignar los valores a los parametros utilizando el "Type Cast" directamente

Código Delphi [-]
ParamByName('@DATA_EDICAO').Value := Data;

Código Delphi [-]
ParamByName('@DATA_EDICAO').AsDateTime := Data;

2) No tengo a la mano un Delphi para verificar, pero es muy probable que la linea

Código Delphi [-]
with ObjSp, Parameters do

te esté generando problemas, pues la variable DATA es bastante comun, y muy probablemente está trayendo información de un objeto que no esperaras...

Intenta cambiar el nombre de la variable (myDATA) o replantea el contenido de la sentencia With...

Un saludo,


La franja horaria es GMT +2. Ahora son las 06:25:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi