Announcement

Collapse
No announcement yet.

Insert in ACCESS mit ADO

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

  • Insert in ACCESS mit ADO

    Hallo,
    Wer weiss Rat!
    Fehler: ADODataset gibt keine Ergebnismenge zurück
    Treiber und Betriebssystem: Jet4 & Windows 2000 oder XP

    Ich möchte Adressen aus der Personaldatei in eine leere Datei "Adressetiketten" schreiben. (MSACCESS2000)
    Es schreibt die Daten in die andere Datei, aber wie unterbinde ich die Fehlermeldung.

    Habe auch schon im ADO-Buch nachgelesen.

  • #2
    Hallo,

    wenn die ausgeführte SQL-Anweisung keine Ergebnismenge zurückliefert, muss für die Eigenschaft <b>ExecuteOptions</b> das Flag <b>eoExecuteNoRecords</b> gesetzt werden:

    <pre>

    object ADODataSet1: TADODataSet
    ExecuteOptions = [eoExecuteNoRecords]
    Parameters = <>
    Left = 200
    Top = 64
    end

    </pre>

    Weitere Details dazu sind in meinem ADO-Buch auf den Seiten 478 und 485 zu finden

    Comment


    • #3
      Hallo,
      Habe nun die Option ExecuteOptions = [eoExecuteNoRecords] gesetzt.
      Leider gibt es jetzt den Fehler: Die Argumente sind von falschen Typ, liegen ausserhalb des Gültigkeisbereichs oder sind miteinander unvereinbar.

      Hier mein SQL

      INSERT INTO Adressetiketten ( ANREDE, NAME, VORNAME, STRASSE,PLZ, ORT )
      SELECT ANREDE, NAME, VORNAME, STRASSE, PLZ, ORT
      FROM Personen

      Was könnte noch falsch sein? Hat jemand noch ne Idee!

      Dankw

      Comment


      • #4
        Hallo,

        eine derartige Anweisung wird am Besten über TADOConnection ausgeführt. Das folgende Beispiel kopiert die Datensätze erfolgreich in die Access-Datenbank:
        <pre>

        procedure TForm1.Button1Click(Sender: TObject);
        var
        sSQL : WideString;
        vRows : OleVariant;
        begin
        sSQL := 'INSERT INTO Adressetiketten ( NAME, VORNAME) SELECT NAME, VORNAME FROM Personen';
        ADOConnection1.Execute(sSQl, vRows, [eoExecuteNoRecords]);
        end;

        </pre>

        Konfiguration in der DFM-Datei:

        <pre>

        object ADOConnection1: TADOConnection
        Connected = True
        ConnectionString =
        'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Database\Gugler.' +
        'mdb;Persist Security Info=False'
        CursorLocation = clUseServer
        LoginPrompt = False
        Mode = cmShareDenyNone
        Provider = 'Microsoft.Jet.OLEDB.4.0'
        Left = 80
        Top = 32
        end

        </pre&gt

        Comment


        • #5
          Hallo,

          Danke, es funktioniert!

          Comment

          Working...
          X