[Error] utilizando o Abort ??? Coisa estranha

Delphi

23/08/2005

heheheehee .. Tava funcionando ha mais de um Tempão.. Não fiz nada e agora da esse erro

[Error] UFormCheques.pas(991): Statement expected, but expression of type ´Integer´ found


So compila com exit no lugar do abort... So que o exit para mim não serve...
Depois falam que fantasma em informátina não existe... É Ruim em...

Alguem tem um ideia de o que esta mensagem esta querendo dizer :?: :?:

[b:a03980ac23]Abaixo segue o código e o erro na hora de compilar [/b:a03980ac23] :?: :?:

[URL=http://imageshack.us][img:a03980ac23]http://img244.imageshack.us/img244/2171/imagemerroabort0ny.jpg[/img:a03980ac23][/URL]

Obrigado....


Marco Salles

Marco Salles

Curtidas 0

Respostas

Wilson Brito

Wilson Brito

23/08/2005

Tambem ja passei por esse problema. No meu caso isso ocorria por causa do uso da unit DBIProcs.


GOSTEI 0
Marco Salles

Marco Salles

23/08/2005

Tambem ja passei por esse problema. No meu caso isso ocorria por causa do uso da unit DBIProcs.


heheheehee .. Tava funcionando ha mais de um Tempão.. Não fiz nada e agora da esse erro


Bem , voce disse que o problema poderia ser devido a uma unit.. Eu lembrei de ter acrescido a função

procedure TFormMovimentoCheques.Table1AfterPost(DataSet: TDataSet);
begin
DbiSaveChanges(Table1.handle);
end;


que necessita da Unite DBE.. Retirei a função e consequentemente a Unit DBE.. E o programa compilou

Bem sera que é bug do delphi :?: :?: :?: Tem como contornar este problema :?: :?: :?: Porque que ocoore isto :?: :?: :?:

Obrigado [b:680c007748]wilsondrb[/b:680c007748]..

Poderia ate tirar esta unit por definitivo.. Mas em contrapartida [b:680c007748]necessito de algo que me garanta que sempre vou gravar fisicamente qualquer alteração que eu fizer via Programa.. [/b:680c007748]Ja aconteceu de algumas alteraçoes não serem gravadas e ai não posso correr o risco... Aproveitando o tópico , alguem conhece alguma rotina ou instrução que faça esta gravação fisica No banco


[b:680c007748]P:S Não to fazendo o Uso de transações...[/b:680c007748]

Obrigado...


GOSTEI 0
Massuda

Massuda

23/08/2005

Depois de ler o que o wilsondrb escreveu, lembrei porque isso acontece...

O Delphi permite que você tenha o mesmo símbolo (nome de variável, constante, função, procedure, etc) definido em units diferentes com, provavelmente, signficados diferentes. Dependendo da ordem dessas units no uses de um form, o significado do símbolo pode ser o que está em uma unit ou na outra.

Um exemplo prático: o símbolo TBitmap é definido na unit Graphics [b:d6d339b898]e[/b:d6d339b898] na unit Windows, com significados diferentes; se você tiver no uses a unit Windows [b:d6d339b898]depois[/b:d6d339b898] da unit Graphics, o significado de TBitmap será diferente do significado usual.

Para resolver isso, o Delphi permite que você escolha qual das definições usar, bastando escrever Graphics.TBitmap ou Windows.TBitmap (assim mesmo, o nome da unit seguido do símbolo). Quem mexe com .NET vai achar isso familiar.

No seu caso específico, deixe o código como estava, apenas use SysUtils.Abort ao invés de Abort apenas.


GOSTEI 0
Marco Salles

Marco Salles

23/08/2005

[b:eb02baf656]Show de bola massuda[/b:eb02baf656] :P :P :P :P :P

Mas a respeito desse Código , eu peguei aqui mesmo no forum e não sei sobre sua confiabilidade

necessito de algo que me garanta que sempre vou gravar fisicamente qualquer alteração que eu fizer via Programa..


begin 
DbiSaveChanges(Table1.handle); 
end;


para evitar de abrir um novo tpopico eu gostaria de prosseguir esta dúvida aqui mesmo ;

Obrigado...


GOSTEI 0
Joaoshi

Joaoshi

23/08/2005

Colega,

Tenho utilizado desta format DBISAVECHANGES(TABLE.HANDLE).
Colocando BDE na primeira posição do USES.

Ex.:
[b:b7d1a11cd7]uses[/b:b7d1a11cd7]
[color=darkblue:b7d1a11cd7]BDE[/color:b7d1a11cd7], SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,


Espero ter ajudado.


GOSTEI 0
Marco Salles

Marco Salles

23/08/2005

Tenho utilizado desta format DBISAVECHANGES(TABLE.HANDLE). Colocando BDE na primeira posição do USES. Ex.: uses BDE, SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,


Qual a diferença entre as posições :?: :?: :?:


GOSTEI 0
Massuda

Massuda

23/08/2005

[quote:6468e4159d=´Marco Salles´]Qual a diferença entre as posições :?: :?: :?:[/quote:6468e4159d]Na unit DBE parece que tem definida uma constante de nome Abort enquanto na unit SysUtils tem definida uma procedure de nome Abort.

Como escrevi no meu post anterior...[list:6468e4159d][*:6468e4159d]Quando a unit BDE está antes da unit SysUtils no uses, todas as ocorrências de Abort no seu código são interpretadas como sendo chamadas à procedure definida em SysUtils[*:6468e4159d]Quando a unit SysUtils está antes da unit BDE no uses, todas as ocorrências de Abort no seu código são interpretadas como sendo a constantes definida em BDE[/list:u:6468e4159d]

No seu caso, você pode evitar esse problema de ordem escrevendo SysUtils.Abort ao invés de escrever Abort apenas.


GOSTEI 0
Marco Salles

Marco Salles

23/08/2005

O Delphi permite que você tenha o mesmo símbolo (nome de variável, constante, função, procedure, etc) definido em units diferentes com, provavelmente, signficados diferentes.[b:0cf83fce47] Dependendo da ordem dessas units no uses de um form, o significado do símbolo pode ser o que está em uma unit ou na outra.[/b:0cf83fce47]


eu não tinha reparado no detalhe :[b:0cf83fce47] ´Ordem... ´[/b:0cf83fce47]

No seu caso, você pode evitar esse problema de ordem escrevendo SysUtils.Abort ao invés de escrever Abort apenas.


Eu fiz isto imediatamente , desde do primeito tópico...

[b:0cf83fce47]Obrigado...[/b:0cf83fce47]


GOSTEI 0
POSTAR