Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fábio Azevedo

[Resolvido] Erro ao Complilar PROCEDURES no DM

Recommended Posts

Fala Galera, estou a uns dias ai quebrando a cabeça pra resolver e achar esse erro...

 

[Error] uDM.pas(19): 'END' expected but 'BEGIN' found

[Error] uDM.pas(21): Undeclared identifier: 'operacao'

[Warning] uDM.pas(21): Comparing signed and unsigned types - widened both operands

[Error] uDM.pas(23): Undeclared identifier: 'tabela'

[Error] uDM.pas(23): '(' expected but ';' found

[Error] uDM.pas(24): Undeclared identifier: 'formulario'

[Error] uDM.pas(24): Incompatible types

[Warning] uDM.pas(29): Comparing signed and unsigned types - widened both operands

[Error] uDM.pas(30): Missing operator or semicolon

[Warning] uDM.pas(33): Comparing signed and unsigned types - widened both operands

[Error] uDM.pas(34): 'THEN' expected but identifier 'recordcount' found

[Error] uDM.pas(38): Missing operator or semicolon

[Error] uDM.pas(39): Not enough actual parameters

[Error] uDM.pas(39): ')' expected but ';' found

[Error] uDM.pas(51): Identifier redeclared: 'DBClient'

[Error] uDM.pas(17): Unsatisfied forward or external declaration: 'TDM.registros'

[Fatal Error] uFPrincipal.pas(97): Could not compile used unit 'uDM.pas'

 

Meu prof. disse pra eu rever os codes e se ja fiz use unit. nos forms, POw isso é praxxee!!!

Mas num acho essa m***** de erro... se alguem puder ajudar...

 

segue o DM

unit uDM;

 

interface

 

uses

SysUtils, Forms, dbclient, Classes, DB;

 

type

TDM = class(TDataModule)

private

{ Private declarations }

public

{ Public declarations }

// procedure registros(operacao: integer; formulario: tform; tabela: tclientdataset)

 

// manipula registros

procedure registros(operacao: integer; formulario: tform; tabela: tclientdataset);

 

begin

//inclusão

if operacao = 1 then

begin

tabela.insert;

formulario.showmodal;

end;

 

 

//alteração

if operacao = 2 then

formulario.Showmodal;

 

//exclusão

if operacao = 3 then

if tabela.recordcount > 0 then

Begin

if Application.MessageBox('Excluir o Registro','aviso', 1+0) = 1 then

Begin

tabela.delete;

tabela.applyupdates(0);

end;

end

Else

Application.MessageBox('Não Há Registros a serem Excluídos','aviso',1+0);

 

end;

 

var

DM: TDM;

 

implementation

uses dbclient;

 

{$R *.dfm}

 

end.

 

 

 

 

 

 

 

ATT

Fábio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, boa tarde.

O que está acontecendo é que seu código está um bagunção geral.

Dei uma acertada no possível nele:

 

unit Unit2;

interface

uses
SysUtils, Forms, dbclient, Classes, DB;

type
TDataModule2 = class(TDataModule)
procedure registros(operacao: integer; formulario: tform; tabela: tclientdataset);
private
{ Private declarations }
public
{ Public declarations }
end;


var
DataModule2: TDataModule2;

implementation
uses dbclient;

{$R *.dfm}

begin
//inclusão
if operacao = 1 then
begin
tabela.insert;
formulario.showmodal;
end;


//alteração
if operacao = 2 then
begin
formulario.Showmodal;
end;

//exclusão
if (operacao = 3) and (tabela.recordcount > 0) and (Application.MessageBox('Excluir o Registro','aviso', 1+0) = 1) then
Begin
tabela.delete;
tabela.applyupdates(0);
end;
end
Else
Application.MessageBox('Não Há Registros a serem Excluídos','aviso',1+0);

end;

end.

Ainda há erros, mas, espero que este "uses dbclient" seja de onde esteja relacionando este "operação"

Mesmo assim, se fosse daí você teria de fazer "Dbclient.Operacao" [...].

 

Qualquer coisa poste aí,

abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!!! Rpz eu já fiz até uma DM nova, vou colar lá no dpr e recompilar, qq coisa posto o resultado...

 

abçs.

Fábio

Olá amigo, boa tarde.

O que está acontecendo é que seu código está um bagunção geral.

Dei uma acertada no possível nele:

 

unit Unit2;

interface

uses
SysUtils, Forms, dbclient, Classes, DB;

type
TDataModule2 = class(TDataModule)
procedure registros(operacao: integer; formulario: tform; tabela: tclientdataset);
private
{ Private declarations }
public
{ Public declarations }
end;


var
DataModule2: TDataModule2;

implementation
uses dbclient;

{$R *.dfm}

begin
//inclusão
if operacao = 1 then
begin
tabela.insert;
formulario.showmodal;
end;


//alteração
if operacao = 2 then
begin
formulario.Showmodal;
end;

//exclusão
if (operacao = 3) and (tabela.recordcount > 0) and (Application.MessageBox('Excluir o Registro','aviso', 1+0) = 1) then
Begin
tabela.delete;
tabela.applyupdates(0);
end;
end
Else
Application.MessageBox('Não Há Registros a serem Excluídos','aviso',1+0);

end;

end.

Ainda há erros, mas, espero que este "uses dbclient" seja de onde esteja relacionando este "operação"

Mesmo assim, se fosse daí você teria de fazer "Dbclient.Operacao" [...].

 

Qualquer coisa poste aí,

abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo erro:

unit uDM;

 

interface

 

uses

SysUtils, Forms, dbclient, Classes, DB;

 

type

TDM = class(TDataModule)

private

{ Private declarations }

public

{ Public declarations }

// procedure registros(operacao: integer; formulario: tform; tabela: tclientdataset)

 

// manipula registros

procedure registros(operacao: integer; formulario: tform; tabela: tclientdataset);

 

Begin

//inclusão

if operacao = 1 then

begin

tabela.insert;

formulario.showmodal;

end;

 

//alteração

if operacao = 2 then

formulario.Showmodal;

 

//exclusão

if operacao = 3 then

if tabela.recordcount > 0 then

Begin

if Application.MessageBox('Excluir o Registro','aviso', 1+0) = 1 then

Begin

tabela.delete;

tabela.applyupdates(0);

end;

end

Else

Application.MessageBox('Não Há Registros a serem Excluídos','aviso',1+0);

end;

end;

 

var

DM: TDM;

 

implementation

uses dbclient;

 

{$R *.dfm}

 

end.

 

 

[Error] uDM.pas(19): 'END' expected but 'BEGIN' found

[Error] uDM.pas(21): Undeclared identifier: 'operacao'

[Warning] uDM.pas(21): Comparing signed and unsigned types - widened both operands

[Error] uDM.pas(23): Undeclared identifier: 'tabela'

[Error] uDM.pas(23): '(' expected but ';' found

[Error] uDM.pas(24): Undeclared identifier: 'formulario'

[Error] uDM.pas(24): Incompatible types

[Warning] uDM.pas(28): Comparing signed and unsigned types - widened both operands

[Error] uDM.pas(29): Missing operator or semicolon

[Warning] uDM.pas(32): Comparing signed and unsigned types - widened both operands

[Error] uDM.pas(33): 'THEN' expected but identifier 'recordcount' found

[Error] uDM.pas(37): Missing operator or semicolon

[Error] uDM.pas(38): Not enough actual parameters

[Error] uDM.pas(38): ')' expected but ';' found

[Error] uDM.pas(44): 'IMPLEMENTATION' expected but ';' found

[Error] uDM.pas(49): '.' expected but 'IMPLEMENTATION' found

[Error] uDM.pas(17): Unsatisfied forward or external declaration: 'TDM.registros'

[Fatal Error] uFPrincipal.pas(97): Could not compile used unit 'uDM.pas'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada...

 

unit uDM;

 

interface

 

uses

SysUtils, Classes;

 

type

TDM = class(TDataModule)

private

{ Private declarations }

public

{ Public declarations }

procedure tdm.registros(operacao: integer; formulario: tform; tabela: tclientdataset);

 

end;

 

var

DM: TDM;

 

implementation

 

uses uDM;

 

{$R *.dfm}

begin

//inclusão

if operacao = 1 then

begin

tabela.insert;

formulario.showmodal;

end;

 

 

//alteração

if operacao = 2 then

begin

formulario.Showmodal;

end;

 

//exclusão

if (operacao = 3) and (tabela.recordcount > 0) and (Application.MessageBox('Excluir o Registro','aviso', 1+0) = 1) then

Begin

tabela.delete;

tabela.applyupdates(0);

end;

end

Else

Application.MessageBox('Não Há Registros a serem Excluídos','aviso',1+0);

 

end;

 

end.

 

end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma coisa antes sobre o penúltimo código:

você está entendendo este code?

Pergunto porque: o que seria este "operação"?

O que seria esta "tabela"?

Pelo que pude entender este "operação" é uma condição para fazer algo com o IF e tal.

E a tabela é o componente TTable.

Mas, você tem que mudar o nome deles pra codar direito amigo!

E outra, porque está codando o código lá em cima, ainda na Public Declarations?

 

Outra coisa sobre o último código: não precisa ter dois end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Brother!!!

 

Assim , a procedure tdm.registro, tem como parametros as tags OPERACAO, FORMULARIO E TABELA, estas tags são parametros para meus processos de INCLUSÃO, EXCLUCÃO e ALTERAÇÃO de dados. Daí você vê isso nos If´s logo abaixo, o que me intriga é que eu faço tantos e tantos sistemas, e sempre que me deparo com erros dessa categoria me prendo de tal modo que chego a atrasar o desenvolvimento, pois realmente não depuro de forma exata, devido ao curt de tempo de programação, daí os helps a galera ninja do Delphi.

 

 

Estou inserindo mais e mais forms, muitos codes ainda a programar e me erro desse me retarda.... paro e fico rodando em circulos, por isso ainda não consegui resolver e pedi ajuda da galera.

 

Att

Fábio

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá...

 

pelo que percebi voce nao está definindo o inicio da procedure na parte de implementação... segue:

 

unit uDM;

interface

uses
  SysUtils, Classes;

type
  TDM = class(TDataModule)
  private
	{ Private declarations }
  public
	{ Public declarations }
	//decalração errada
	//procedure tdm.registros(operacao: integer; formulario: tform; tabela: tclientdataset);

   //correta
	 procedure registros(operacao: integer; formulario: tform; tabela: tclientdataset);

  end;

var
  DM: TDM;

implementation

uses uDM;

{$R *.dfm}

procedure tdm.registros(operacao: integer; formulario: tform; tabela: tclientdataset);
begin

//inclusão
if operacao = 1 then
begin
tabela.insert;
formulario.showmodal;
end;


//alteração
if operacao = 2 then
begin
formulario.Showmodal;
end;

//exclusão
if (operacao = 3) and (tabela.recordcount > 0) and (Application.MessageBox('Excluir o Registro','aviso', 1+0) = 1) then
Begin
tabela.delete;
tabela.applyupdates(0);
end
Else
Application.MessageBox('Não Há Registros a serem Excluídos','aviso',1+0);

end;

end.

alterei oq percebi.. nao pude compilar pq nao tenho o delphi aqui instalado agora.. mas teste e poste o resultado beleza..

 

espero ter ajudado...

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala meu brother, joguei seu code no dm, e F9 nele rpz compilou, mas deu erro na uses udm no implementation, retirei, add as duas uses da procedure no uses forms ( Forms, Dbclient ) e F9 foi.

foi gerar o exec. do sistema e ver se dá algum pau, mas esse su ja tá resolvido.

 

Grato ai.

 

segue Udm:

 

unit uDM;

 

interface

 

uses

SysUtils, forms, dbclient, Classes;

 

type

TDM = class(TDataModule)

private

{ Private declarations }

public

{ Public declarations }

//decalração errada

//procedure tdm.registros(operacao: integer; formulario: tform; tabela: tclientdataset);

 

//correta

procedure registros(operacao: integer; formulario: tform; tabela: tclientdataset);

 

end;

 

var

DM: TDM;

 

implementation

 

//uses uDM;

 

{$R *.dfm}

 

procedure tdm.registros(operacao: integer; formulario: tform; tabela: tclientdataset);

begin

 

//inclusão

if operacao = 1 then

begin

tabela.insert;

formulario.showmodal;

end;

 

 

//alteração

if operacao = 2 then

begin

formulario.Showmodal;

end;

 

//exclusão

if (operacao = 3) and (tabela.recordcount > 0) and (Application.MessageBox('Excluir o Registro','aviso', 1+0) = 1) then

Begin

tabela.delete;

tabela.applyupdates(0);

end

Else

Application.MessageBox('Não Há Registros a serem Excluídos','aviso',1+0);

 

end;

 

end.

 

Já refiz isso umas 20 vezes, mas se você visualizou esse erro, fico grato, pq eu num vi nem refazendo.

 

grato a todos e delphi na Veia.

Abçs

 

olá...

 

pelo que percebi voce nao está definindo o inicio da procedure na parte de implementação... segue:

 

unit uDM;

interface

uses
  SysUtils, Classes;

type
  TDM = class(TDataModule)
  private
	{ Private declarations }
  public
	{ Public declarations }
	//decalração errada
	//procedure tdm.registros(operacao: integer; formulario: tform; tabela: tclientdataset);

   //correta
	 procedure registros(operacao: integer; formulario: tform; tabela: tclientdataset);

  end;

var
  DM: TDM;

implementation

uses uDM;

{$R *.dfm}

procedure tdm.registros(operacao: integer; formulario: tform; tabela: tclientdataset);
begin

//inclusão
if operacao = 1 then
begin
tabela.insert;
formulario.showmodal;
end;


//alteração
if operacao = 2 then
begin
formulario.Showmodal;
end;

//exclusão
if (operacao = 3) and (tabela.recordcount > 0) and (Application.MessageBox('Excluir o Registro','aviso', 1+0) = 1) then
Begin
tabela.delete;
tabela.applyupdates(0);
end
Else
Application.MessageBox('Não Há Registros a serem Excluídos','aviso',1+0);

end;

end.

alterei oq percebi.. nao pude compilar pq nao tenho o delphi aqui instalado agora.. mas teste e poste o resultado beleza..

 

espero ter ajudado...

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido então? ^o)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.