Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2005
VRO VRO is offline
Miembro
 
Registrado: abr 2004
Posts: 230
Poder: 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
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:41:56.


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