Announcement

Collapse
No announcement yet.

ADO Seek mit MS-Access 97 funktioniert nicht

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

  • ADO Seek mit MS-Access 97 funktioniert nicht

    Ich verwende Delphi 5 und versuche über der Provider MS Jet 4.0 (SP3) auf eine MS-Access 97 Datenbank zuzugreifen.
    Beim Verwenden von Seek bekomme ich die Fehlermeldung "Das Objekt oder der Provider kann den angeforderten Vorgang nicht ausführen".
    Ich verwende die Parameter clUseServer und TableDirekt

  • #2
    Hallo,

    mit Delphi 6.01 und ADO 2.7 (Windows XP) kann ich dieses Problem nicht nachvollziehen:
    <pre>
    object ADOConnection1: TADOConnection
    Connected = True
    ConnectionString =
    'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Buch\ADO\CDROM\D' +
    'atabase\dbdemos.mdb;Persist Security Info=False'
    CursorLocation = clUseServer
    LoginPrompt = False
    Mode = cmShareDenyNone
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    Left = 136
    Top = 96
    end
    object ADODataSet1: TADODataSet
    Active = True
    Connection = ADOConnection1
    CursorLocation = clUseServer
    CommandText = 'employee'
    CommandType = cmdTableDirect
    IndexName = 'ByName'
    Parameters = <>
    Left = 168
    Top = 96
    </pre>
    Alle 3 Seek-Aufrufe arbeiten so wie erwartet:
    <pre>
    procedure TForm1.ButtonSeekClick(Sender: TObject);
    begin
    ADODataSet1.Seek(EditName.Text)
    end;

    procedure TForm1.ButtonSeekLastClick(Sender: TObject);
    begin
    ADODataSet1.Seek(EditName.Text, soLastEQ)
    end;

    procedure TForm1.ButtonSeekBeforeClick(Sender: TObject);
    begin
    ADODataSet1.Seek(EditName.Text, soBeforeEQ)
    end;
    </pre>

    Was liefert TADODataSet.Supports([coSeek]) zurück

    Comment


    • #3
      Hallo,

      als Erstes vielen Dank für die schnelle Antwort.

      Allerdings funktioniert meine Anwendung trotz identischer Parameter nicht. TADODataSet.Supports([coSeek]) liefert FALSE zurück.
      Mein technisches Umfeld ist Delphi 5, ADO 2.7 und Windows NT 4.0.

      Was kann ich noch probieren

      Comment


      • #4
        Hallo,

        was passiert, wenn die MDB-Datei auf das ACCESS2000-Format geändert wird? Wenn der Aufruf von Supports([coSeek]) den Wert FALSE zurückliefert, unterstützt der OLE DB Provider diese Funktion bei der vorgefundenen Datenbank/Konfiguration nicht

        Comment


        • #5
          Hallo,

          vielen Dank für den Hinweis. Bei Access 2000 funktioniert alles prächtig!!

          Siehst Du eine Möglichkeit die Anwendung auch unter Access 97 zum Laufen zu bringen? Bringt ein Office-Update enwas, oder ist für die Funktionalität ausschließlich ADO 2.7 "verantwortlich"

          Comment


          • #6
            Hallo,

            die neue Microsoft Jet Engine 4.0 arbeitet nur mit dem ACCESS2000-Format ohne Einschränkungen zusammen. Für "alte" MDB-Datenbanken wird intern eine Konvertierung gemacht. Ich würde zuerst versuchen, ob der der "alte" Provider <b>Provider=Microsoft.Jet.OLEDB.3.51</b> besser geeignet ist

            Comment

            Working...
            X