AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken dBase/ODBC kann Datensatz nach Änderung nicht schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

dBase/ODBC kann Datensatz nach Änderung nicht schreiben

Ein Thema von HannsW · begonnen am 18. Jan 2010 · letzter Beitrag vom 19. Jan 2010
 
HannsW

Registriert seit: 6. Jan 2010
26 Beiträge
 
#1

dBase/ODBC kann Datensatz nach Änderung nicht schreiben

  Alt 18. Jan 2010, 16:03
Datenbank: Dbase/Clipper • Version: IV • Zugriff über: ODBC/BDE
Ich muss die Artikel aus dBase/Clipper ausdrucken.
Da ich keinen ODBC-Treiber gefunden habe, der .ntx Indizes unterstützt,
gehe ich die gesamte Datenbank Satz für Satz durch ( ).
Wenn diese Artikel noch nicht in einer Rechnung gedruckt wurden,
setze ich boolean "neueRechung" auf true, und versuche, nach Ausdruck
des aktuellen Artikels, diesen mit neuer Rg_Nummer und - Datum u versehen,
und zu "Posten"
Delphi-Quellcode:
      tableAufPos.First;
      while not tableAufPos.Eof do
      begin
          if tableAufPos.FieldByName('AUFTR_NR').AsString = auftrNr then
            begin
                // Drucke den Artikel
                // neue Rechnung ?
               if neueRechnung and not istTestDruck then begin
                  tableAufPos.edit;
                  tableAufPos.FieldByName('RECH_NR').AsString
                                        := tfRechnNr.Text;
                  tableAufPos.FieldByName('RECH_DAT').AsString
                                         := tfRechDatum.Text;
                  tableAufPos.Post;
                end;
            end;
            { Ende einzelner Artikel }
            tableAufPos.Next;
       end;
Hier kann es geschehen, daß bereits beim ersten "POST" die Meldung kommt,
daß ein anderer Prozess auf die daten zugreift.

Für Aufpos habe ich ein tabelAUfPos und ein dsAUfpos verknüpft.

nachfolgender Code hingegen klappt immer:
Delphi-Quellcode:
function TRgDruckForm.incNummer ( nummernTyp: String): boolean;
var
suchen,found: boolean;
neueNummer : double;
begin
      tableNummern.Active := true;
      tableNummern.FindFirst;
      suchen := true;
      found := false;
       while suchen do
       begin
          if tableNummern.FieldByName('NUMMERNART').AsString = nummernTyp then
            begin
            suchen := false;
            found := true;
            neueNummer := tableNummern.FieldByName('NUMMER').AsFloat +1.0;
            tableNummern.edit;
            tableNummern.Fields[1].AsFloat := neueNummer;
            tableNummern.Post;
            end
          else
             suchen := tableNummern.FindNext;
       end;
     if found then
        Result := true
     else
        Result := false;

     tableNummern.Active := false;

end;
Hat irgendjemand eine rettende Idee?
Danke Hanns
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz