Announcement

Collapse
No announcement yet.

Belegnummern wie Auftrags-. und Rechnungsnummern als AutoInc Felder

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Belegnummern wie Auftrags-. und Rechnungsnummern als AutoInc Felder

    Hallo,

    ich verwende die JET 4.0 Engine in Verbindung mit ADO, für meine Belegnummern verwende ich AutoInc - Felder. Weis jemand wie man bei einem Insert eine Art Zwischenspeicherung durchführt, damit die aktuelle Wert des AutoInc - Feldes angezeigt wird und des weiteren verknüpfte Daten anlegen kann, wie z.B. Belegpositionen. Ich möchte gerne Delphipower verwenden, eine eigene Belegnummernverwaltung sollte es nicht unbedingt sein.

    Gruß Mathias

  • #2
    Hallo,

    wenn eine ACCESS-Datenbank im ACCESS2000-MDB-Dateiformat verwendet wird, sollte dies kein Problem sein. Das folgende Beispiel demonstriert die Konfiguration im Objektinspektor:
    <pre>
    object ADOConnection1: TADOConnection
    ConnectionString =
    'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TEMP\Out\AccessA' +
    'utoWert\AccessAutoWert.mdb;Persist Security Info=False'
    CursorLocation = clUseServer
    LoginPrompt = False
    Mode = cmShareDenyNone
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    Left = 8
    Top = 8
    end
    object ADODataSetMaster: TADODataSet
    Connection = ADOConnection1
    CursorLocation = clUseServer
    CommandText = 'TblMaster'
    CommandType = cmdTableDirect
    Parameters = <>
    Left = 48
    Top = 8
    object ADODataSetMasterID: TAutoIncField
    FieldName = 'ID'
    end
    object ADODataSetMasterEintrag: TWideStringField
    FieldName = 'Eintrag'
    end
    end
    </pre>
    Immer dann, wenn ein neuer Detail-Datensatz angelegt wird, belegt das Programm den Wert des dazupassenden Master-Datensatzes vor:
    <pre>
    procedure TForm1.ADODataSetDetailNewRecord(DataSet: TDataSet);
    begin
    ADODataSetDetailMasterID.Value := ADODataSetMasterID.Value;
    end;
    </pre&gt

    Comment


    • #3
      Hallo Andreas,

      ich habe das gleich mal ausprobiert, leider ohne Erfolg. Ich muss dazu sagen, dass ich das Relation - Management von Access 2000 nutze. Wahrscheinlich komme ich nicht drum herum den Auftragskopf per Insert in die Base einzufügen und anschließend automatisch gleich wieder in den Edit - Zustand zu versetzen.

      Das dumme an der Sache ist eben nur, das die Software eng mit State (DataSet) zusammenarbeitet, und ein dsInsert wird natürlich gesondert behandelt. Da der User die Neueingabe jederzeit verwerfen kann.

      Hast Du zufällig noch irgendeien Idee, vielleicht ganz unten in der ADO - Basis, ich bin nocht nicht sehr weit vorgedrungen.

      Ich benötige eigentlich nur den Mechanismus einen neuen Datensatz per Post abzuspeichern und anschließend diesen Datensatz irgend wie wieder in den dsInsert - Modus zu bringen.

      Danke Mathia

      Comment

      Working...
      X