Erro ao salvar tabela paradox

Delphi

17/05/2004

Bem pessoal creio que minha duvida é simples lá vai...
coloquei um botão para salvar a tabela

ex: table1.prior;

só que se não foram feitas nenhuma modificação da o erro de DEBUGER, gostaria de saber como colocar uma regra para que table1 so salve se forem feitas modificações caso contrário ela mostra um form, pensei em fazer com if mas não sei se é possível.

se alguem tiver alguma coisa ficarei agradecido.

boa tarde a todos


Klaveren

Klaveren

Curtidas 0

Respostas

Netosdr

Netosdr

17/05/2004

Olá,

Você deve verificar o estado da tabela no momento da gravação antes de enviar o Post

Ex:
if Table.State <> dsBrowse then Table1.Post;

Declare DB na uses.

Abraços.


GOSTEI 0
Klaveren

Klaveren

17/05/2004

ok
bem digito este código no botão???
ele verifica todos os campos???


GOSTEI 0
Fatrix

Fatrix

17/05/2004

bem digito este código no botão??? ele verifica todos os campos???


Voce pode fazer o seguinte:

coloque no form que contêm o botão o código abaixo:

with DataSource.DataSet do
  begin
    if (State in dsEditModes) then
      begin
         Botao.enabled := true;
         Post
      else
         Botao.enabled := false;
  end;


É isso.
Espero ter ajudado.


GOSTEI 0
Klaveren

Klaveren

17/05/2004

OK O CÓD FICOU ASSIM...

procedure Tfrm_CadClientes.FormCreate(Sender: TObject);
begin
with DataSource_CadClientes.DataSet do
begin
if (State in dsEditModes) then
begin
BitBtn_Salvar.enabled := true;
Post
else
BitBtn_Salvar.enabled := false;
end;
end;
end.

POREM ELE NÃO COMPILA POIS DÁ ESTA MENSAGEM DE ERRO...

[Error] unt_CadCliente.pas(122): ´END´ expected but ´ELSE´ found


GOSTEI 0
Fatrix

Fatrix

17/05/2004

Faça assim:
procedure Tfrm_CadClientes.FormCreate(Sender: TObject); 
  begin 
    with DataSource_CadClientes.DataSet do 
       begin 
          if (State in dsEditModes) then 
             begin 
                BitBtn_Salvar.enabled := true; 
                Post 
              else 
                 BitBtn_Salvar.enabled := false; 
             end; //fim do if
         end; //fim do with
  end;//fim da procedure
end.


Obs.: Mude a propriedade Enabled do BitBtn_Salvar para False

É isso.
Espero ter ajudado.


GOSTEI 0
Rodolpho123

Rodolpho123

17/05/2004

OK O CÓD FICOU ASSIM... procedure Tfrm_CadClientes.FormCreate(Sender: TObject); begin with DataSource_CadClientes.DataSet do begin if (State in dsEditModes) then begin BitBtn_Salvar.enabled := true; Post //Falta um end aqui, sem ponto-e-vírgula else BitBtn_Salvar.enabled := false; end; end; end. POREM ELE NÃO COMPILA POIS DÁ ESTA MENSAGEM DE ERRO... [Error] unt_CadCliente.pas(122): ´END´ expected but ´ELSE´ found
Dá uma olhada no código acima. Faltou um [b:75f58807a3]end[/b:75f58807a3] onde eu informei.


GOSTEI 0
Klaveren

Klaveren

17/05/2004

desculpe pessoal mas é o seguinte

quando executo o programa o botão aparece desabilitado e assim fica, posso alterar e inserir que ele nem se pronuncia!!!
alguem uma luz???


GOSTEI 0
Fatrix

Fatrix

17/05/2004

:oops:
Foi mal, errei.
Então coloque o seguinte código no evento OnStateChange do
seu DataSource.

with Data2.DataSet do
  begin
    if (State in dsEditModes) then
      BitBtn_Salvar.enabled := true
    else
      BitBtn_Salvar.enabled := false;
  end; //fim do with


e no botão
Data2.DataSet.Post;


Como diria O Cid Moreira:
´Desculpem a nossa falha.´

É isso.
Espero ter ajudado.


GOSTEI 0
Fatrix

Fatrix

17/05/2004

:oops:
Foi mal, errei.
Então coloque o seguinte código no evento OnStateChange do
seu DataSource.

with DataSource_CadClientes.DataSet do
  begin
    if (State in dsEditModes) then
      BitBtn_Salvar.enabled := true
    else
      BitBtn_Salvar.enabled := false;
  end; //fim do with


e no botão
DataSource_CadClientes.DataSet.Post;


Como diria O Cid Moreira:
´Desculpem a nossa falha.´

É isso.
Espero ter ajudado.


GOSTEI 0
Klaveren

Klaveren

17/05/2004

ok cara muito obrigado


GOSTEI 0
POSTAR