Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi >EDatabaseError< Einfüge Editiermodus || Was soll ich machen (https://www.delphipraxis.net/49384-edatabaseerror-einfuege-editiermodus-%7C%7C-soll-ich-machen.html)

EDatabaseError 10. Jul 2005 17:03

Datenbank: dBase • Version: for Windoof • Zugriff über: TTable

>EDatabaseError< Einfüge Editiermodus || Was soll ich
 
:cry: Kann mir mal jemand helfen?

Code:
if inputquery('Entnahme-Assistent', 'Wie viele Artikel sollen entnommen werden?', str1) = true then
       begin
        i5 := StrToInt(str1);
        str1 := '';

        DataModule4.Tabelle.Active := false;
        DataModule4.Tabelle.readonly := false;

        DataModule4.Tabelle.FieldValues['ART_STUECK'] := i4 - i5;
        datamodule4.tabelle.post;
       
        cls;
        formentnehmen.hide;
        form2.show;
       end
      else str1 := '';
Bei folgendem Code bekomme ich immer eine Exception das die Tabelle weder im Einfüge noch im Editiermodus ist was soll ich machen? Der Aktive Datensatz enthält bereits eine Variable ART_STUECK die ich ändern will.

Danke schon im vorraus.

marabu 10. Jul 2005 17:21

Re: >EDatabaseError< Einfüge Editiermodus || Was soll
 
Delphi-Quellcode:
if inputquery('Entnahme-Assistent', 'Wie viele Artikel sollen entnommen werden?', str1)
and TryStrToInt(str1, i5) then begin
  DataModule4.Tabelle.Edit;
  DataModule4.Tabelle.FieldValues['ART_STUECK'] := i4 - i5;
  Datamodule4.tabelle.Post;
       
  // cls; ???
  formentnehmen.hide;
  form2.show;
end;
str1 := '';
ReadOnly sollte die Tabelle allerdings wirklich nicht sein.

Grüße vom marabu

EDatabaseError 10. Jul 2005 17:40

Re: >EDatabaseError< Einfüge Editiermodus || Was soll
 
danke :thumb: :cheers:


sry aber da is noch n fehler entweder darfs bei geöffneter oder bei geschlossener Datenmenge nicht ausgeführt werden. :?

Code:
if inputquery('Entnahme-Assistent', 'Wie viele Artikel sollen entnommen werden?', str1) = true then
       begin
        i5 := StrToInt(str1);
        str1 := '';

        DataModule4.Tabelle.Active := true; //egal og true oder false bekomm ne exception
        DataModule4.Tabelle.readonly := false;

        datamodule4.tabelle.edit;
        DataModule4.Tabelle.FieldValues['ART_STUECK'] := i4 - i5;
        datamodule4.tabelle.post;
       
        cls; //leeren prozedur
        formentnehmen.hide;
        form2.show;
       end
      else str1 := '';

ps TryStrToInt gibts bei mir net hab delphi 3 prof.

EDatabaseError 10. Jul 2005 18:07

Re: >EDatabaseError< Einfüge Editiermodus || Was soll
 
so noch mal das ganze bin am ende und hab keine ahnung wo der fehler liegt:


Code:
procedure TFormEntnehmen.BitBtn1Click(Sender: TObject);
var i1, i2, i3, i4, i5: Integer;
    str1: String;
begin
showmessage('1');
 if radiobutton1.checked = true then
  begin
   showmessage('2');
   //suche nach lagernummer
   TRY
   showmessage('3');
    i1 := StrToInt(MaskEdit1.Text);
    i2 := StrToInt(MaskEdit2.Text);
    i3 := StrToInt(MaskEdit3.Text);
    showmessage('4');
    DataModule4.Tabelle.open;
    if DataModule4.Tabelle.Locate('NUM_LAGER;NUM_REGAL;NUM_ART', VarArrayOf([i1, i2, i3]), [loCaseInsensitive]) then
     begin
      showmessage('...');
      MaskEdit1.Text := DataModule4.Tabelle.FieldValues['NUM_LAGER'];
      MaskEdit2.Text := DataModule4.Tabelle.FieldValues['NUM_REGAL'];
      MaskEdit3.Text := DataModule4.Tabelle.FieldValues['NUM_ART'];

      Edit1.Text := DataModule4.Tabelle.FieldValues['ART_NAME'];
      Edit2.Text := DataModule4.Tabelle.FieldValues['ART_NUM'];
      Edit3.Text := DataModule4.Tabelle.FieldValues['ART_DESCR'];

      i4 := DataModule4.Tabelle.FieldValues['ART_STUECK'];

      Panel3.Caption := 'Vorhanden: ' + IntToStr(i4);

      if inputquery('Entnahme-Assistent', 'Wie viele Artikel sollen entnommen werden?', str1) = true then
       begin
        i5 := StrToInt(str1);
        str1 := '';


        DataModule4.Tabelle.readonly := false;

        datamodule4.tabelle.edit;

        DataModule4.Tabelle.FieldValues['ART_STUECK'] := i4 - i5;
        datamodule4.tabelle.post;

        cls;
        formentnehmen.hide;
        form2.show;
       end
      else str1 := '';
     end
    else
     begin
      Messagedlg('Artikel nicht gefunden!', mtError, [mbOK], 0);
     end;
   EXCEPT
    Messagedlg('Eingabe ungültig oder im falschen Bereich!', mtError, [mbOK], 0);
    str1 := '';
   END;
  end
 else
  begin
   //suche nach artikeldaten
   TRY

   EXCEPT
    Messagedlg('Artikel nicht gefunden!', mtError, [mbOK], 0);
   END;
  end;
end;

marabu 10. Jul 2005 18:24

Re: >EDatabaseError< Einfüge Editiermodus || Was soll
 
ReadOnly kannst du nicht bei geöffneter Tabelle umschalten. Wenn du aber die Tabelle schließt (z.B. mit Active := False) und dann wieder mit ReadOnly=False öffnest, dann musst du wieder den richtigen Datensatz lokalisieren...

Am einfachsten ist es, wenn deine Tabelle mit ReadOnly=False (Standardeinstellung) geöffnet wird.

marabu

EDatabaseError 10. Jul 2005 18:34

Re: >EDatabaseError< Einfüge Editiermodus || Was soll
 
aha meld mich morgen wieder.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz