Uma soloção usada para um INSERT na tabela

04/01/2006

Aí galera estou presisando de algo assimmm.clico no Button ele verifica o estado da tabela...se a tabela [color=red:060b5bad6c]não[/color:060b5bad6c] tiver em modo de insert ou edit ele dá um insert nesta tabela...tem como fazer isto ?

Vlw t+


Gigatel

Respostas

04/01/2006

Michael

Olá!

Presumindo que a tabela esteja sendo acessada por um DataSet, basta utilizar a propriedade [b:24bfa6d1ad]State[/b:24bfa6d1ad]. Veja:

if (DataSet.State <> dsEdit) and (DataSet.State <> dsInsert) then
...


[]´s


Responder Citar

04/01/2006

Caninha51

Eh soh verificar o estado do dataset.
if not (Table.State in [dsInsert,dsEdit&93;) then
  Table.Insert



Responder Citar

04/01/2006

Gigatel

deixa explicar meu problema para melhor compreensão talvez outra altermativa seja melhor...

no meu programa tem uma parte que joga em um crediário e é possível parcelar este valor....uso duas tabelas para gerar estes valores...uma para servir de base e outra para as parcelas...a tabela de base serve principalmente para gerar um código o de será referencia da tabela de parcelas....uso um page control para navegar entre as opções { PAgamento a vista }, e outros...no evento on show do parcelado, onde entra a função da tabela base ( que chamo de BD_CONTAS_TPA ) dou um Insert.....quando clico em concluir dou um post na tabela de base e assim gerar um novo código aí que vai concluir a função...O problema é que tem vezes que isto não funciona ( naum sei explicar ) dá um erro que a tablema não esta em modo de edição...daí pensei na idéia deste tópico,... e tem outra como eu colocaria esta função acima ?..

veja o código..

procedure T_FORM_OS_BX.Button3Click(Sender: TObject);
begin
    BD_CONTAS_TPA.Post;
    QuickRep3.PrinterSettings.Copies := BD_CONFOSGS_OOC_QDFIO2.value;
    QuickRep3.PrinterSettings.Copies := BD_CONFOSGS_OOC_QDFIO4.value;
    if DBLookupComboBox1.Text = ´´ then
    begin
    Showmessage (´É obrigatório seu prenchimento campo "Responsável"´);
    abort;
  end
    else
    begin
 if MessageDlg(´Deseja dar saída a O.S. do cliente  ´ + _FORM_OS_NAV.BD_OFC_ELEGS_OOE_NOME.Value + ´ ?´,mtConfirmation,[mbYes,mbNo&93;,0)<>mrYes then Abort;
  if BD_CONT_REC.RecordCount <> 0 then
  begin
    if Application.MessageBox(´Já foram geradas parcelas para este documento, deseja imprimi-las?´ , ´Imprimir.´, MB_ICONQUESTION + MB_YESNO) = IDYES then
      QuickRep3.Print;
  end
  else
  begin
    if eddata.Text =´  /  /    ´ then
      Showmessage (´É requerido que o campo data esteja        preenchido´)
    else if Label28.Caption = ´Não´ then
       showmessage(´Atenção !!! Crédito bloqueado.´)
    else
    begin
      if edvalor.text = ´´ then
        GeraErroValorTotal
      else

        Geraparcelas;
    end;
  end;
end;
end;


será que dá algum galho se eu colocar esta função ? pois ela tem que analizar se a tabela está em modo de insert se num tiver ela tem que dar este insert...caso contraria a função corre normalmente....


flw....


Responder Citar