bom dia pessoal, estou migrando uma aplicacao feita em delphi 6
utilizando dbexpress e firebird 2.11 para delphi 7
e esta acontecendo um erro que nao consegui solucionar.
a rotina abaixo funciona perfeitamente no delphi 6 há mais de 4 anos,
mas quando compilo o sistema no delphi 7 da erro em tempo de execução
coisa que não ocorre no delphi 6
alguem poderia me indicar
um caminho para eu tentar descobrir o porque do erro ?
ja vasculhei na net e não achei nada que se aplicasse ao meu caso.
por isto estou recorrendo a lista

tentativas feitas por mim:
removi o componete  TSQLStoreProc que veio no projeto do delphi 6 e
adicionei novamente no delphi 7
removi o componete  Sqlconnection que veio no projeto do delphi 6 e
adicionei novamente no delphi 7
criei os parametros em tempo de design
removi para trabalhar sem os parametros
criei os parametros em tempo de execução

muito obrigado

segue a mensagem de erro quando chega na linha ExecProc

dbExpress Error: Operation Not Supported

SP_Generico é do tipo TSQLStoreProc da paleta dbexpress.


       // Soma as quantidades dos produtos vendidos no dia e totaliza
pelos dias informados
       with DM_Cadastro.SP_Generico do
       Begin
         Close;
         Params.Clear;
         P1                                 := TParam.Create(Params,
ptInput);
         P2                                 := TParam.Create(Params,
ptInput);
         P3                                 := TParam.Create(Params,
ptInput);
         P4                                 := TParam.Create(Params,
ptInput);
         Params[0].Name                     := 'spEMPRESA';
         Params[1].Name                     := 'spPRODUTO';
         Params[2].Name                     := 'spDATAINICIO';
         Params[3].Name                     := 'spDATAFINAL';
         SQLConnection                      := DM_Cadastro.SQLConnection;
         StoredProcName                     := 'sp_VENDA_SEMANA_PERIODO';
         ParamByName('spEMPRESA').AsInteger := StrToInt( vGCodEmpresa ) ;
         ParamByName('spPRODUTO').AsInteger :=
DM_Cadastro.SqlGeral.FieldByName('T032_PRODUTO_IU').AsInteger;
         ParamByName('spDATAINICIO').AsDate := ( vGDataSistema -
StrToInt( EdtDiasPesquisa.Text ) );
         ParamByName('spDATAFINAL').AsDate  := vGDataSistema;
         ExecProc; =====>>>>>>> da erro na execução no delphi 7 mas
não da erro no delphi 6
       End;

codigo da Stored Procedure

SET TERM ^ ;

CREATE OR ALTER PROCEDURE "sp_VENDA_SEMANA_PERIODO" (
   "spEMPRESA" INTEGER,
   "spPRODUTO" INTEGER,
   "spDATAINICIO" DATE,
   "spDATAFINAL" DATE)
RETURNS (
   "spSomaDia" DOUBLE PRECISION,
   "spSoma" DOUBLE PRECISION)
AS
begin
 /* Procedure Text */
 select sum( T041_QUANTIDADE ) from T041_ITENS_VENDA
 Where
 ( t041_itens_venda.t041_empresa_ie = :"spEMPRESA" and
   t041_itens_venda.t041_produto_e  = :"spPRODUTO" and
   t041_itens_venda.t041_data between :"spDATAINICIO" and :"spDATAFINAL" )
 Into :"spSoma";
 If ( "spSoma" is Null ) Then
      "spSoma" = 0;
 select sum( T041_QUANTIDADE ) from T041_ITENS_VENDA
 Where
 ( t041_itens_venda.t041_empresa_ie = :"spEMPRESA" and
   t041_itens_venda.t041_produto_e  = :"spPRODUTO" and
   t041_itens_venda.t041_data       = :"spDATAFINAL" )
 Into :"spSomaDia";
 If ( "spSomaDia" is Null ) Then
      "spSomaDia" = 0;
 suspend;
end^

SET TERM ; ^

GRANT SELECT ON T041_ITENS_VENDA TO PROCEDURE "sp_VENDA_SEMANA_PERIODO";

GRANT EXECUTE ON PROCEDURE "sp_VENDA_SEMANA_PERIODO" TO SYSDBA;


Responder a