Announcement

Collapse
No announcement yet.

Kein Zugriff auf IB6-Dialect3-Datenbanken von Delphi6 Enterprise über BDE

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

  • Kein Zugriff auf IB6-Dialect3-Datenbanken von Delphi6 Enterprise über BDE

    Hallo,

    ich plane den Umstieg auf Delphi 6. Entgegen der Literatur komme ich über die BDE nicht auf Interbase 6, Dialect 3 Datenbanken.

    Die Datenbanken sind über den SQL-Explorer bzw. über IB-Expert editierbar,
    der Registry-Eintrag ist gemacht (siehe Kosch 'Interbase mit Delphi', Seite 452 und folgende), danach wurden die Alias-Einträge angelegt.
    Beim Aktivieren der TDatabase-Komponente kommt immer der BDE-Fehler
    9986: ungültiger Parameter.

    Denselben Fehler bekomme ich, wenn ich bei einer TDatabase-Instanz erst zur
    Laufzeit die Params fülle.

    Ich arbeite mit W2K, Interbase 6.01 OpenSource, Delphi 6 Enterprise mit Service-Pack1, die Datenbanken sind lokal.

    Ich könnte natürlich alles auf IBX-Zugriffe umstellen, aber das wollte
    ich mir mit Delphi6 bei meinen selten genutzten Importroutinen ersparen.

    Hat jemand von Euch schon Erfahrung mit D6 und IB6-Dialect3 und BDE?

  • #2
    Hallo,

    was passiert, wenn eine neue InterBase 6 Dialect 3-Datenbank angelegt wird, die keine eigenen Tabellen enthält. Kann dann die Verbindung aufgebaut werden? Wenn nicht, ist sollte dieser Test falls möglich auf einem anderen Rechner wiederholt werden.

    Bei mir (Delphi 6.01) ist der folgende Weg erfolgreich (die Datensätze werden in TTable/TDBGrid angezeigt). Ich nutze zur Vereinfachung keinen bereits vorhandenen BDE-Alias, sondern lege über TDatabase eine eigene Verbindung über den Treiber fest:
    <pre>
    object Form1: TForm1
    Left = 371
    Top = 130
    Width = 696
    Height = 480
    Caption = 'Form1'
    Color = clBtnFace
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    OldCreateOrder = False
    PixelsPerInch = 96
    TextHeight = 13
    object DBGrid1: TDBGrid
    Left = 16
    Top = 48
    Width = 320
    Height = 120
    DataSource = DataSource1
    TabOrder = 0
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = 'MS Sans Serif'
    TitleFont.Style = []
    end
    object Database1: TDatabase
    Connected = True
    DatabaseName = '_Test'
    DriverName = 'INTRBASE'
    LoginPrompt = False
    Params.Strings = (
    'SERVER NAME=C:\Database\IB6\NEU6D3.GDB'
    'USER NAME=SYSDBA'
    'OPEN MODE=READ/WRITE'
    'SCHEMA CACHE SIZE=8'
    'SQLDIALECT=3'
    'PASSWORD=masterkey')
    SessionName = 'Default'
    Left = 16
    Top = 16
    end
    object Table1: TTable
    Active = True
    DatabaseName = '_Test'
    TableName = 'ANG'
    Left = 48
    Top = 16
    end
    object DataSource1: TDataSource
    DataSet = Table1
    Left = 88
    Top = 16
    end
    end
    </pre&gt

    Comment


    • #3
      hallo,
      in der readme.txt von delphi6 (im root) findet sich folgende info:
      InterBase 6 Dialect 3
      ------------------------------

      Um die neuen InterBase 6 Dialect 3-Funktionsmerkmale nutzen zu
      können, fügen Sie Ihrer Windows-Registrierung unter
      HKEY_LOCAL_MACHINE\SOFTWARE\
      Borland\Database Engine\Settings
      \Drivers\Intrbase\Db Open\SQLDIALECT
      einen neuen Eintrag hinzu und setzen den Wert auf "3".

      Wenn ein InterBase-Alias erzeugt wird, steht der neue Eintrag in
      der .CFG-Datei zur Verfügung.

      Um InterBase 5.6 zu verwenden, kann SQLDIALECT auf "1" gesetzt
      werden (existierende IB-Aliase, die keinen SQLDIALECT-Eintrag
      haben, werden standardmäßig auf SQLDIALECT=1 gesetzt, oder auf
      die Registrierungseinstellung, wenn der SQLDIALECT-Eintrag der
      Registrierung hinzugefügt wird).

      vielleicht kommst du damit weiter.

      ;-) thoma

      Comment


      • #4
        Hallo,

        um diese potentielle Fehlerquelle auszuschliessen, habe ich in meinem Beispiel vom 5.11. die TDataBase-Komponente direkt konfiguriert (siehe <b>Params</b>-Eintrag <i>SQLDIALECT=3</i>) und somit auf einen BDE-Alias verzichtet. Den Registry-Eintrag braucht man nur dann, wenn ein normaler BDE-Alias eingerichtet werden soll

        Comment


        • #5
          hallo andreas,
          danke für die info, dass war mir neu

          ;-) thoma

          Comment

          Working...
          X