Ajuda com dbExpress SqlDataSet - Procedimento Gravar
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
---------------------------------------------------------------
---
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
Curtidas 0
Respostas
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.
Desde já agradeço sua ajuda.
GOSTEI 0
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+
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
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;
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
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+
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