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.