"ERROR [07009] [Microsoft][ODBC Paradox Driver] Ungültiges Argument." ;D



  • Ich hab hier ne Paradox-Datenbank und jage da ein simples
    SELECT * FROM tabelle;
    rein, aber nach exakt 5177 eingelesenen Zeilen, sagt mir der ODBC-Treiber plötzlich:
    "ERROR [07009] [Microsoft][ODBC Paradox Driver] Ungültiges Argument."

    Irgendwie scheint der Paradox-Treiber Probleme mit der Datenmenge zu haben, gibt es eine Möglichkeit das ganze in Stücken von 1000 Zeilen oder so einzulesen ?
    (Bei MySQL hätte ich da einfach mit "LIMIT startzeile,zeilenanzahl" mir ein paar Zeilen rausgesucht und dann SELECT halt mehrmals mit unterschiedlicher startzeile aufgerufen - Gibt es sowas bei ODBC auch irgendwie ?)

    Weiss jemand woran das liegen kann ? Und/Oder wie man die Fehlermeldung los wird ?



  • geeky (not@home) schrieb:

    ...gibt es eine Möglichkeit das ganze in Stücken von 1000 Zeilen oder so einzulesen ?

    Nein.

    geeky (not@home) schrieb:

    Weiss jemand woran das liegen kann ? Und/Oder wie man die Fehlermeldung los wird ?

    An Paradox? Paradox nicht verwenden?

    Woher weißt Du denn, dass bei Datensatz 5177 der Fehler auftritt, wenn Du nichts außer einem Select machst?

    Grüße Joe_M.



  • Paradox nicht verwenden würde ich gerne, aber die Datenbank die es auszulesen gilt, liegt nunmal in dem Format vor ;/

    Ich greife mittels ODBC in C# drauf zu.

    Ich habe eine DbConnection-Instanz erzeugt, damit eine DbCommand-Instanz und da liefert mir ExecuteReader() einen DbDataReader zurück.
    Der DbDataReader wird mal grob dargestellt so aufgerufen:

    DbDataReader dbr;
    
    dbr=dbCmd.ExecuteReader();
    
    while (dbr.Read())
    {
       System.Diagnostics.Debug.WriteLine( dbr["id"] );
    }
    

    ...in der while-Schleife lasse ich einen Zähler mitlaufen, daher weiss ich bei welcher Zeile es nicht weitergeht.
    Sobald die Zeile erreicht ist, wird bei dbr.Read() eine OdbcException geworfen, die mir eben die genannte Fehlermeldung liefert 😉
    Ich hab noch weiter rumprobiert und das ganze scheint irgendwie abhängig von der Datenmenge zu sein, wenn ich statt "*" z.B. nur "id" selektiere läuft alles problemlos durch. Aber desto mehr Daten in den selektierten Feldern stecken, desto früher kriege ich die Exception.

    Der Weg scheint wohl so zu laufen: ODBC -> BDE -> Paradox-Datenbank
    Meine Vermutung ist, dass durch die BDE die Datenmenge irgendwie begrenzt wird und bei übertreten liefert der ODBC-Treiber dann ne Fehlermeldung.



  • Du könntest in der BDE (Konifigurarion->System->Init) höhere Werte bie allem was ein BUF oder MEM enthält eintragen. Wenn die Werte bisher unverändert sind, kannst Du da locker vierfache Werte eintragen.

    Wenn das nicht hilft, könntest Du mir die Tabelle mal mailen, dann schau ich mal, was ich mit dem BCB, direkt über die BDE machen kann. (Such Dir einen Beitrag von mir und sende mir eine Nachricht über mein Profil, dann gebe ich Dir eine E-Mail-Adresse von mir.)
    Würde es dir überhaupt helfen, die Tabellen in einem anderen Format zu haben?

    Grüße Joe_M.



  • Ah, bei mir war die BDE irgendwie kaputt 😉
    Ich hab von Borland BDE 5.01 installiert, was bei WinXP wohl bei sein müsste, und nu läufts 😉


Anmelden zum Antworten