AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADO und Master/Detail/Detail
Thema durchsuchen
Ansicht
Themen-Optionen

ADO und Master/Detail/Detail

Ein Thema von merlin17 · begonnen am 14. Jun 2004 · letzter Beitrag vom 15. Jun 2004
Antwort Antwort
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

ADO und Master/Detail/Detail

  Alt 14. Jun 2004, 22:33
hallo,

ich habe vor vielen Jahren (1996) ein kleines Programm auf BDE-Basis Geschrieben. Läuft heute noch bei einigen ohne Probleme.
Nun gibt es scheinbar mit der BDE und dem MSACCESS-Treiber bei einem Kunden ein paar Probleme mit MDAC 2.8 (Version lt. dem Kunden, ich habe hier nur 2.7a??).
Ich wollte nun eine kleine Exportroutine dahin gehend ändern, dass ich die drei TTable-Objekte gegen drei TADOTable-Objekte ersetze (mit gemeinsamer Connection). Soweit alles kein Problem. Nur:

Ich habe drei Tabellen
Rechnung
RechnungsFall
RechnungsPosition

in der Access-Datenbank (von einem anderen Verfahren (scheinbar vb <g>).
Wie bekomme ich bei drei Tabellen die Master-Detail-Detail-Geschichte hin.
d.h. ich füge einen Rechnungssatz ein (ID: 1) und dann will ich die Fälle in die 2. Tabelle einfügen und bei RE_ID soll automatisch die 1 übernommen werden. Und Entsprechend bei der Positionstabelle eine RFall_ID von der 2. Tab).
Ich habe (mein erster Kontakt ADO btw) schon die Feinheiten CursorLocation und CursorTyp entdeckt und die Rechungs-ID wird jetzt korrekt übernommen (ohne reLoad der Tabelle) aber die Relation von Fall mit Position klappt dann nicht mehr.....

Code:
While-Not-Schleife Rechnung
Rechnung.Insert
    While Not-Schleife Fälle
       Insert von Datensätzen in Fälle mit ID_RE
       While Not Schleife Positonen
         Insert von DS Positionen mit Übernahme der ID_Fälle
   ...next....
Mit der BDE TTable lief der Export aus meinen PDox-Tables in die Access-Tabellen ohne jegliche Probleme (und sogar richtig schnell!!)

Wie sieht hier eine Lösung bei den drei Tabellen und den Einstellungen der TADOTable oder TADODataset aus?!?! Ist doch sicherlich möglich, oder? Ich will mich nicht allzu tief mit ADO auseinander setzen (ich arbeite primär mit Oracle und Interbase und früher mal mit der BDE).


Danke für jeden Tip


thomas
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#2

Re: ADO und Master/Detail/Detail

  Alt 15. Jun 2004, 07:21
Guten Morgen Thomas,
ich denke Dein Problem hat eigentlich nichts mit ADO zu tun. Es hängt mehr mit den AutoIncrement Werten in der Datenbank zusammen, bzw. damit, dass dieser Autowert gleichzeitig Primärschlüssel der Detailtabellen ist.

Wenn der Wert im Auto-Feld immer um 1 erhöht wird, könnte (zumindest im Single-User Betrieb ) die Ermittlung der jeweils neuen ID aus der Datenbank entfallen.

Dann würde es reichen, die bisher höchsten Nummern via

SQL-Code:
Select MAX(Rech-ID) from Rechnung
Select MAX(RechnungssFall-ID) from RechnungsFall
usw. zu ermitteln und bei der Datenübernahme im Programm einfach mitzuzählen welche Nummer als nächste "dran" ist.

Schöne Grüße
Niels


P.S. Du hast geschrieben, Dir gelingt es die neue ID via CursorLocation und CursorTyp herauszufinden. Würde mich interessieren wie !
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:33 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