Ver Mensaje Individual
  #1  
Antiguo 25-01-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Reputación: 21
VRO Va por buen camino
Execute procedure

hola,¿que hay de nuevo?, vereis

mi problema puede que sea muy sencillo de solucionar pero me he ozecado y no veo el error.
He hecho un procedimiento almacenado para importar una tabla de Access a Interbase.

1º- utilizo un ADOQuery para leer los datos de la tabla en Access
2º- Ejecuto con un Query de interbase el procedimiento almacenado.

Acontinuación os pongo el código utilizado para ver si vosotros veis el error, porque yo ya no se que hacer.

Procedimiento almacenado:
Código SQL [-]
SET TERM!!;
CREATE PROCEDURE IMPORTAR (NUMERO INTEGER, FECHA DATE, LECTURA FLOAT, CONSUMO FLOAT) 
AS
 DECLARE VARIABLE var1 INTEGER;
  DECLARE VARIABLE var2 INTEGER;
BEGIN
      SELECT count(NUMERO)
      FROM lecturas
      where numero=:numero and fecha=:fecha
      INTO :var1;
      BEGIN
       IF (:VAR1=0) THEN
        begin
         select count(numero)
         from contadores
         where numero=:numero
         into :var2;
          if (:var2<>0) then
            INSERT INTO lecturas(numero,fecha,lectura,perdidas,consumo,est,tiempo,averiado,festivo,cerrado)
            VALUES (:NUMERO,:FECHA,:LECTURA,0,:CONSUMO,1,null,0,0,0);
         end
       ELSE
         UPDATE lecturas
         SET FECHA=:FECHA, LECTURA=:LECTURA,CONSUMO=:CONSUMO
         WHERE NUMERO=:NUMERO;
      END
END!!
SET TERM;!!

con este query llamo al procedimiento.
Código Delphi [-]
query.Close;
query.sql.Add('execute procedure importar '+ADOquery.fieldbyname('contador').Text+','+
+FormatDateTime('mm/dd/yy',ADOquery.Fieldbynem('fecha').asdatetime)+','+ADOQuery.fieldbyname('lectura').text+','+ADoquery.f  ieldbyname('consumo').text+'');
query.ExecSQL;

El error que da es:Unexpected end of command, podeis pensar que es porque en el execute procedure los parametros de entrada no les pobgo parentesis, si les pongo me da error en el paréntesis.

Yo pienso queigual es por pasar la fecha como String y ser date, en ese caso,¿ como le paso directamente como date?.

Fijo que es una tontería pero no consugo verlo.
Ante todo mi enorme agradecimiento.
Responder Con Cita