Ajuda com dbExpress SqlDataSet - Procedimento Gravar

Delphi

07/09/2005

Não consigo compilar o código no Delphi.

---
erro
[Error] Unit1.pas(56): Undeclared identifier: ´ExecProc´
---

Estou usando o dbExpress
componentes
SqlDataSet

Botão Gravar:

procedure TForm1.GravarClick(Sender: TObject);
begin
with Modulo.SpGer_Marca do
begin
Params[0].AsInteger := 1;
Params[1].AsString := ´´;
Params[2].AsString := EdtNome.Text;
ExecProc; < erro nesta linha+++++
Modulo.setMarca.Active := False;
Modulo.setMarca.Active := True;
end;
end;

-----------------------------------------------------------
No banco está tudo certo
-----------------------------------------------------------
Banco de Dados:
InterBase
Procedimento no banco de dados:

CREATE PROCEDURE GER_MARCA (
TIPO INTEGER,
ID_MARCA INTEGER,
MARCA VARCHAR(175))
RETURNS (
RESPOSTA VARCHAR(1))
AS
begin
if (TIPO = 1) then
if (not exists (select * from Tab_Marca where MARCA = :MARCA)) then
insert into Tab_marca (Marca) values (:MARCA);
else
RESPOSTA = ´X´;
else
if (:TIPO = 2) then
if (not exists (select * from Tab_modelo where ID_MARCA = :ID_MARCA)) then
delete from Tab_marca where ID_MARCA = :ID_MARCA;
else
RESPOSTA = ´X´;
else
if (:TIPO = 3) then
update Tab_marca set MARCA = :MARCA where ID_MARCA = :ID_MARCA;
suspend;
end
---------------------------------------------------------------


Ullrich

Ullrich

Curtidas 0

Respostas

Ullrich

Ullrich

07/09/2005

Será que alguem tem alguma idéia para me ajudar, estou querendo saber como faço para executar um procedimento feito em InterBase no Delphi, quando coloco ExecProc sempre da erro.

Desde já agradeço sua ajuda.


GOSTEI 0
Vinicius2k

Vinicius2k

07/09/2005

Colega,

O método ExecProc é da classe TSQLStoredProc, por este motivo não é reconhecido no TSQLDataSet.
Substitua o componente utilizado para a execução da SP.

T+


GOSTEI 0
Ullrich

Ullrich

07/09/2005

Primeiramente, obrigado pela ajuda colega.


Estou usando um TSQLStoredProc, veja na 3 linha do procedimento
SPGer_Marca.

procedure TForm1.GravarClick(Sender: TObject);
begin
with Modulo.SpGer_Marca do
begin
Params[0].AsInteger := 1;
Params[1].AsString := ´´;
Params[2].AsString := EdtNome.Text;
ExecProc; < erro nesta linha+++++
Modulo.setMarca.Active := False;
Modulo.setMarca.Active := True;
end;
end;


GOSTEI 0
Vinicius2k

Vinicius2k

07/09/2005

:?:
No seu título vc informa: ´...dbExpress SQLDataSet´.
Na mensagem vc informa: ´...estou usando dbExpress componentes SQLDataSet´.

Não dava para saber que ´SPGer_Marca´ é um TSQLStoredProc, afinal nomes são particulares...

Tem certeza que vc está utilizando TSQLStoredProc? O método ExecProc é desta classe e se, realmente, não estiver compilando por não reconhecer este método há algum ´mistério´ no seu Delphi.

T+


GOSTEI 0
POSTAR