Announcement

Collapse
No announcement yet.

Daten unter Access 97 speichern

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

  • Daten unter Access 97 speichern

    Hallo,

    Ich versuche unter Access 97 mit Delphi6 und dem ADO Objekt(ADOConnection1) Daten zu speichern. Die Tabelle hat einen Primärschlüssel(Autowert).<br>
    Ich suche mir über eine Ado Query eine Anzahl von Datensätze aus einer Tabelle, ändere einen einzigen davon und
    gehe derzeit wie folgt vor:<br>
    1. ich setze die Query in den Edit Modus (ADOQuery1.Edit)<br>
    2. führe die Änderungen durch<br>
    3. möchte mit: ADOQuery1.UpdateBatch(arCurrent); speichern, dies funktioniert nicht, denn ich erhalte die Meldung <b>"Nicht genügend Basistabelleninformationen zum Aktualisieren"</b>. Was mach ich falsch? <br>
    Natürlich hat der CursorType der Datenmenge den Wert ctStatic und die Eigenschaft LockType den Wert ltBatchOptimistic. Weitere Informationen zu meinem Problem finde ich in der Hilfe leider nicht.
    Wer kann mir helfen?
    Die Meldung tritt auch mit AdoDataset1 auf. <br><br>
    Wo gibt es eine Beschreibung für den Umgang mit ADO?

    Vielen Dank<br>
    Karl-Heinz

  • #2
    Hallo,

    holt sich die TADOQuery-Instanz ihre Daten über einen <b>JOIN</b> (also eine Verknüpfung von mehreren Tabellen)? Wenn ja, muss man den ADO-Objekten mitteilen, welche Tabelle als sogenannte <i>Basic-Tabelle</i> betrachtet werden soll. Nach dem Öffnen der Datenmenge ist dazu folgender Aufruf notwendig, um die Eigenschaft <b>Unique Table</b> zu initialisieren:
    <pre>
    uses ADOInt;

    resourcestring
    cRC = 'select m.id, d.id, m.name, d.email from tbl_master m ' +
    'join tbl_detail d on m.ID = d.MasterID ' +
    'where d.ID = ';

    procedure TForm1.ADODataSet1AfterOpen(DataSet: TDataSet);
    begin
    ADODataSet1.Recordset.Properties['Unique Table'].Value := 'TBL_DETAIL';
    end;
    </pre>
    Da ADO aus COM-Objekten besteht und dort die Sprache keine Rolle spielt, kann ich nur das folgende Buch empfehlen: <i>Microsoft Press: ADO-Programmierung (309 Seiten; ISBN 3-86063-618-9)</i>.

    Wenn es sich nur um eine Tabelle handelt, welcher Datentyp wird dort als Primärschlüssel verwendet? Beim Zugriff auf ACCESS-Datenbanken sollte man zu <b>clUseServer</b> (Eigenschaft CursorLocation) greifen, da die Jet Engine ja bereits lokal läuft.

    Im Frühjahr nächsten Jahres ist dann auch mein ADO-Buch für Delphi erhältlich

    Comment


    • #3
      Vielen Dank. Die Einstellung <b>clUseServer</b> war der entscheidende Tip.<br>
      Karl-Hein

      Comment

      Working...
      X