Announcement

Collapse
No announcement yet.

Exception bei Aufruf von dbxmys30.dll

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

  • Exception bei Aufruf von dbxmys30.dll

    Hallo,

    ich entwickle gerade eine kleine Datenbank-Anwendung, die mittels dbExpress mit einem mySQL-Server interagieren soll. Das ganze geschieht im C++Builder 2007.
    Bin mir noch nicht mal sicher ob das hier das richtige Forum dafür ist, vielleicht hätte ich auch bei "Datenbanken" posten sollen?

    Nun ja, jetzt zu meinem Problem:
    Ich habe eine TSQLConnection SQLCon, die greift mittels ODBC Treiber auf den mySQL-Server zu. Anmelden klappt auch wunderbar.
    Es gibt ein weiteres TSQLDataSet SQLDataSet.
    Danach führe ich folgenden Code aus:
    Code:
    SQLDataSet->SQLConnection=SQLCon;
    SQLDataSet->CommandType=ctQuery;
    SQLDataSet->CommandText="select * from devices where op='Lazaar';";
    
    SQLDataSet->Open();
    Beim Open() kommt folgende Exception hoch: EAccesviolation mit der Meldung 'Zugriffsverletzung bei Adresse 00E5E258 in Modul 'dbxmys30.dll'. Lesen von Adresse 00000000 aufgetreten.

    Leider hab ich überhaupt keinen Plan, wo das her kommt. Wenn ich in die Tiefen des Pascals absteige, wird die Exception von der Funktion OpenCursor; in der DB.pas ausgelöst. Ich bin ein absoluter Neuling, was Datenbaken betrifft...

    Hat jemand eine Idee woran das liegen könnte?
    Der Server antwortet übrigens, ich seh auf dem Netzwerkinterface die angeforderten Daten ankommen.

    Grüße,

    Bodo

  • #2
    Wieso der umweg über ODBC? Bei dbExpress kannst du ohne ODBC direkt auf MySQL zugeifen - vorrausgesetzt die libmysql.dll ist passend zu deiner C++-Builder-Version.

    Comment


    • #3
      Hallo Bernhard,

      stimmt, du hast recht, habe ich eben ausprobiert. Ich habe das ganz simpel nicht gewusst, der gute Mensch, der den SQL-Server eingerichtet hat, hat etwas von ODBC gemurmelt, deswegen habe ichs damit versucht. Ehrlich gesagt habe ich erst gestern angefangen mich mit SQL zu beschäftigen und das ist alles Neuland für mich...

      Leider hat sich an der Exception ohne den ODBC Treiber nichts geändert. Woher sehe ich denn, dass die libmysql.dll zu meiner Builder Version passt?
      Und wo bekomme ich denn andere Versionen her? Auf mysql.de ist nur die aktuellste verfügbar.
      Kann es sein, dass die Exception eigentlich auf einer nicht passenden libmysql.dll beruht?

      Grüße, Bodo

      Edit: Reicht obiger Code eigentlich an Initialisierung? Es verwirrt mich, dass ich dem SQLDataSet keinen Speicherbereich zugewiesen habe, in dem er die Daten des Querys ablegt...
      Zuletzt editiert von bodo2407; 20.08.2010, 07:59. Reason: Was vergessen...

      Comment


      • #4
        Details kann ich dir nicht sagen. Verwenden seit Jahren die DevArt Komponenten und haben damit keine Problem. Es muss auch nix installiert sein und man geht auch dem Lizenzproblem von MySQL aus dem Weg.

        Speicherbereich zuweisen ist nicht nötig. Machen die Komponenten selbständig.

        Comment


        • #5
          Ok, ich hab aus einer ominösen Quelle eine ältere libmysql.dll runtergeladen und mit der funktionierts.

          Jetzt eine ganz dämliche Frage: Wie kann ich mir TDataSet zum Beispiel in einem TDBGrid anzeigen lassen?

          Comment


          • #6
            Originally posted by bodo2407 View Post
            Jetzt eine ganz dämliche Frage: Wie kann ich mir TDataSet zum Beispiel in einem TDBGrid anzeigen lassen?
            Du mussst noch eine TDataSource dazwischen schalten.

            Comment


            • #7
              Danke, dass funktioniert jetzt schon mal

              Jetzt bin ich nur noch zu blöd, auf die in dem DBGrid angezeigten Daten zu zugreifen... Wie geht das? Ich habe weder bei TDataSource, TDataSet od TDBGrid irgendwelche Indizes gefunden.

              Grüße, Bodo

              Comment

              Working...
              X