Borland C++ Builder und MySQL externe Datenbank verbinden



  • Hallo,

    Ich möchte mittels C++ Builder 2007 auf eine externe Datenbank auf einer Website zugreifen. (Also ein Programm schreiben wo ich dann auf die MySQL Datenbank auf ner Website zugreifen kann.) Ich habe bereits mit TSQLConnection versucht eine Verbindung aufzubauen, doch ohne Erfolg es kam zunächst immer eine Fehlermeldung "Cannot load dbxmys30.dll ....". Diese konnte ich beheben indem ich die Datei libmysql.dll in das bin-Verzeichnis von Codegear kopiert habe. Ich wollte halt nur mal gucken ob die Verbindung überhaupt funktioniert.
    Vielmehr würde ich gerne durch einen Knopfdruck das Programm mit der externen Datenbank verbinden, wo es halt eine Fläche gibt, wo man seine Daten eingeben kann und dann halt einfach verbinden...
    Gibt es da einen Code dazu?



  • hast du mal versucht über ODBC auf die Datenbank zuzugreifen? ich meine damit nicht über BDS2007 sondern direkt über Windows (Einstellungen->Systemsteuerung->Verwaltung->Datenquellen(ODBC)). Falls du dort auch keine Verbindung herstellen kannst, ist die Datenbank eventuell garnicht erreichbar. Andernfalls mußt du die Einstellungen nochmal genau prüfen.



  • ich möchte doch nicht lokal am Rechner auf die Datenbank zugreifen.
    Und wie schon gesagt möchte über ein Programm auf die Datenbank zugreifen



  • Ich hab mal hier ein Code gefunden, so in der ist das sollte das auch sein denke ich.

    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
        MYSQL       *connection;                    /* Der MySQL-Handler: Verbindung zum MySQL-Server */
        MYSQL_RES   *ergebnis,*ergebnis2;           /* Ergebnis einer Abfrage */
        char        abfrage[1000],abfrage2[1000];   /* beinhaltet die Abfrage */
        MYSQL_ROW   zeile,zeile2;                   /* Ergebniszeile */
    
        connection = mysql_init(NULL);              /* Datenstruktur initalisieren */
    
        if(mysql_real_connect(                      /* Verbindung aufbauen */
        connection,                                 /* MySQL-Handler */
        "www",                                /* Host-Name */
        "wetterabruf",                                     /* User-Name */
        "nichtvonbedeutung",                                /* Passwort  */
        "wetterdaten",                              /* Datenbank */
        3306,                                          /* Port, standard = 0 */
        NULL,                                       /* Socket, standard = NULL */
            0) == NULL) {                           /* keine Flags */
                Label14->Caption="Verbindung schlug fehl: %u (%s)", mysql_errno(connection), mysql_error(connection);
                Label14->Visible=true;
                mysql_close(connection);
                exit(1);
            }
    

    Aber das Problem ist manche Sachen wie "MYSQL *connection" kennt C++Builder nicht. Muss ich sowas wie mysql.h einfügen? wenn ja wohin? und wenn ich das fertige Program weitergebe klappt es trotzdem??
    Ich weiß sind schon sehr viele Fragen auf einmal 🙂 aber es gibt sicherliche Leute hier, die sich damit bestens auskennen und deshalb bitte ich um eure Hilfe



  • kenux schrieb:

    Ich möchte mittels C++ Builder 2007 auf eine externe Datenbank auf einer Website zugreifen..

    Hi,

    Welcher Web-Admin gestattet dir denn sowas?

    mfg kpeter



  • kpeter schrieb:

    Hi,

    Welcher Web-Admin gestattet dir denn sowas?

    mfg kpeter

    ist meine eigene Seite



  • Hi,

    besorg dir den MySQL-Connector unter

    http://dev.mysql.com/downloads/connector/net/1.0.html.

    Versuche dann erst mal, deine Anwendung lokal auf dem PC zum laufen zu bringen.
    Um ins Internet zu gehen, ist es ratsam, den Connectstring zu verschlüsseln;
    auch das ist eine harte Nuss.

    mfg
    kpeter



  • kenux schrieb:

    kpeter schrieb:

    Hi,

    Welcher Web-Admin gestattet dir denn sowas?

    mfg kpeter

    ist meine eigene Seite

    Eigene Seite reicht nicht. Eine eigene Seite nützt Dir nichts, da die Provider in 99,9 Prozent der Fälle nur einen Zugriff vom 'localhost' aus gestatten. Nur wenn es Dein eigener Root-Server ist, hast Du die Möglichkeit das zu ändern.



  • local funkzioniert es mit dem ODBC-Connector, doch das brauch ich ja nicht.

    gibt es keinen hier der sich schonmal damit beschäftigt hat??
    Oder mit dem dbexpress TSQLconnection??



  • Kann denn der ODBC-Connector auf die remote Datenbank zugreifen? Weil ich (und ich glaube einige andere auch) bezweifel noch immer das du überhaupt von extern an die Datenbank verbinden *darfst*.
    Generell ist es so: funktioniert der *Connector* soweit das er lokal verbindet, kannst du es auch remote.

    Hürden sind dann nur die eigene Firewall, nen DSL-Router, externe Firewall, Datenbankserver-Konfiguration die nur auf localhost lauscht.

    mfg
    xXx



  • -=]xXx[=- schrieb:

    Weil ich (und ich glaube einige andere auch) bezweifel noch immer das du überhaupt von extern an die Datenbank verbinden *darfst*.

    Yepp, insbesondere das 'local' in seinem letzten Post lässt mich immer noch zweifeln...


Log in to reply