Ver Mensaje Individual
  #1  
Antiguo 05-04-2006
gcaffe gcaffe is offline
Miembro
 
Registrado: oct 2004
Posts: 53
Reputación: 20
gcaffe Va por buen camino
Unhappy TADOStoreProcedure falla a la segunda vez

Hola a todos:
Aprovecho para deciros que me gusta el nuevo diseño de la página. Ahora tengo un problema que me lleva por la calle de la amargura, se trata de lo siguiente:

Tengo un procedimiento almacenado en una BD SQL 2000 y es este:

Código SQL [-]
CREATE PROCEDURE FacturasVER
            @Cliente    Integer,
            @FechaIni    Char(10),
            @FechaFin    Char(10),
            @Estado    TinyInt

AS
DECLARE @Sql        nVarChar(200)
BEGIN

    SET @Sql = 'SELECT Facturas.*, Clientes.NombreEmpresa FROM Facturas'
    SET @Sql = RTrim(@Sql)+ ' LEFT JOIN Clientes ON (Facturas.Cliente = Clientes.IdCliente)' 
    SET @Sql = RTrim(@Sql)+ ' WHERE Fecha >= ''' + @FechaIni + ''' AND Fecha <= ''' + @FechaFin + ''''
    IF @Cliente > 0 SET @Sql = RTrim(@Sql)+ ' AND Cliente = ' + RTrim(CAST(@Cliente AS Char(4)))
    IF @Estado = 1 SET @Sql = RTrim(@Sql)+ ' AND Cobrado = 0'
    IF @Estado = 2 SET @Sql = RTrim(@Sql)+ ' AND Cobrado > 0'

    EXECUTE SP_EXECUTESQL @Sql    
    
END
GO
Este procedimiento esta registrado en un TADOStoreProcedure en y es ejecutado cuando se hace clic a un botón, cuyo evento es este:

Código Delphi [-]
procedure TfrmFactura.BarraBtnsbtnBuscarClick(Sender: TObject);
begin
   with DM.FacturasVER do begin
      if Active then Close;
      ProcedureName := 'FacturasVER;1';
      Parameters.Refresh;
      Parameters.FindParam('@Cliente').Value := 0;
        Parameters.FindParam('@FechaIni').Value := '01/01/2006';
        Parameters.FindParam('@FechaFin').Value := '31/12/' + IntToStr(CurrentYear);
        Parameters.FindParam('@Estado').Value := 0;
      Prepared := True;
      Active := True;
   end;
   edCliente.SetFocus;
end;
El caso es que los datos se presentan en un dbgrid, al abrir la ventan la primera vez y hacer clic al botón correspondiente todo funciona bien, pero cuando se cierra la ventana y nuevamente se abre y se hace clic al botón sale el siguiente error:

'Violación de acceso en la dirección 4FF833E4 en módulo 'sqloledb.dll'. Leer dirección 00000018'

He probado todo lo que mis conocimentos da de sí, pero no logro dar con el fallo, si me ayudais les quedaré agradecido.

Muchas gracias.
Responder Con Cita