Announcement

Collapse
No announcement yet.

Zugriff auf Paradox-DB

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

  • Zugriff auf Paradox-DB

    Hallo,

    Ich möchte gerne auf eine Paradox-DB zugreifen. Kann mir jemand sagen wie (ob das mit den Obdc-Treiber funktioniert und welchen Provider man im Connection-String angeben muß ?

    MFG Volker Kreuzmann

  • #2
    Hallo,

    immer dann, wenn keine SQL-Klasse für die Datenbank zur Verfügung steht, bleiben unter .NET immer noch 2 Wege übrig: <br>
    1. OleDb-Klassen (OleDbConnection etc.) <br>
    2. "Alte" ADO-Objekte, die über COM Interop eingebunden werden.

    <b>1. Weg</b> über <b>OleDbConnection</b> und <b>OleDbDataAdapter</b>:
    <pre>
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim sConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Programme\Gemeinsame Dateien\Borland Shared\Data;Extended Properties=Paradox 5.x;"
    Dim aCon As New OleDbConnection(sConStr)
    aCon.Open()
    Dim aCmd As New OleDbCommand("SELECT * FROM Country", aCon)
    Dim aAdp As New OleDbDataAdapter(aCmd)
    Dim aDS As New DataSet()
    aAdp.Fill(aDS, "Country")
    DataGrid1.DataSource = aDS.Tables(0).DefaultView()
    End Sub
    </pre>

    <b>2. Weg über ADO</b> (COM Interop):<br>
    Das folgende Beispiel demonstriert das Auslesen der Daten über COM. Der OLE DB .NET Data Provider stellt die überladene Methode <b>OleDbDataAdapter.Fill</b> zur Verfügung, um als Input auch ein "altes" Recordset-Objekt als Quelle für die Ergebnismenge für DataSet nutzen zu können. Die Methode Fill legt dazu die benötigten Spalten in der DataTable an und füllt diese dann mit den Daten aus dem Recordset-Objekt. Wenn ein Primärschlüssel existiert, wird diese Information dazu verwendet, um die bereits vorhandenen Daten mit den Recordset-Daten zu aktualisieren. Nach das erledigt ist, bleibt das Recordset aktiv - die Methode Fill schließt am Ende das Recordset nicht. Das folgende Beispiel demonstriert dies:
    <pre>
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim aCon As New ADODB.Connection()
    Dim aRS As ADODB.Recordset
    Dim aOleDA As New Data.OleDb.OleDbDataAdapter()
    Dim aDT As New Data.DataTable()
    Dim aDS As New Data.DataSet()
    Dim aDV As Data.DataView
    Dim sConStr As String
    sConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Programme\Gemeinsame Dateien\Borland Shared\Data;Extended Properties=Paradox 5.x;"
    aCon.Open(sConStr)
    aRS = aCon.Execute("SELECT * FROM Country")
    aOleDA.Fill(aDT, aRS)
    aDS.Tables.Add(aDT)
    aDV = aDS.Tables(0).DefaultView()
    DataGrid1.DataSource = aDV
    End Sub
    </pre>
    Um auf den Namespace ADODB für die alten ADO-Objekte zugreifen zu können, muss eine Referenz zur <b>Microsoft ActiveX Data Objects 2.6 Library</b> dem .NET-Projekt hinzugefügt werden.

    &#10

    Comment


    • #3
      Hallo,

      Viellen Dank für die schnelle Antwort. Ich werde es ausprobieren.

      MFG Volker Kreuzman

      Comment


      • #4
        Ich habe es hinbekommen !!!

        Nochmals viellen Dank !

        Volker Kreuzman

        Comment

        Working...
        X