kostenloser Webspace werbefrei: lima-city


Mysql DB verbindung mit builder c++...

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    screendevil

    screendevil hat kostenlosen Webspace.

    Hi

    Hab doch noch nen problem, also ich m?chte mit einer datei eine db verbindung mit mysql ,zu einen anderm server zb der von lima machen?

    Soll ich das mit den Komponenten von borland builder c++ machen?
    ich baue die datei ja sowie so in borland builder c++.
    Wie kann ich das machen ?

    ich kenne mich relativ gut mit mysql aus, wegene php. Aber bei c bekomme ich es einfach net hin.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. p**i

    Also bei C# ist es so,
    dass man sich erstmal einen Datenbanktreiber installieren muss.
    Den bekommt man von http://www.mysql.de.
    Ist ein ODBC-Treiber.
    Und deshalb denke ich mal, dass man es unter C++ genauso machen muss.

    Diesbez?glich k?nntest Du mal die MSDN-Library durchforsten,
    da gibt's immer etwas brauchbares:
    http://msdn.microsoft.com/library/default.asp

    Hab gleich mal was interessantes gefunden:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdataodbcodbcconnectionclasstopic.asp

    Dort wird Aufbau der Verbindung gezeigt.

    Gruss,
    Puni
  4. Autor dieses Themas

    screendevil

    screendevil hat kostenlosen Webspace.

    Ok , danke. Aber das ich die mysql treiber brauche war mir bekannt, mein problem ist nur welche sachen ich bei borland s?tzen muss.

    Ich habe einfach mal ein bisschen ausprobier, aber er meint das ich die libmySQL.dll datei brauche, die habe ich zwar, aber ich wei? nicht wo hin damit bei Borland
  5. Autor dieses Themas

    screendevil

    screendevil hat kostenlosen Webspace.

    kann mir denn keiner helfen ? Ich brauche nur eine richtige beschreibung, wie ich mit dem borland builder c++ zu einer mysql db conecte !!!!

    Hilfeee :confused:
  6. 0******a

    Vorweg eine Ermahnung wegen Doppelpost. N?chstes Mal bitte die Editfunktion benutzen!

    Ich beschreibe mal so, wie ich aus eigenen Programmen MySQL DBs anspreche:
    1.:
    Lad dir unter http://dev.mysql.com/downloads den MySQL DB Server runter (immer die Version, hinter der "recommended" steht).
    2.:
    Installier dir MySQL auf deinem Rechner.
    3.:
    In dem Verzeichnis, in dem du MySQL installiert hast, sind auch zwei Ordner erstellt worden mit den Namen "lib" und "include". In "include" sind die Headerdateien f?r die native MySQL C API drin, in "lib" die entsprechenden Bibliotheken.
    4.:
    In dem Ordner "Docs" findest du eine PDF Datei ("Manual"). In dieser stehen in dem Kapitel "MySQL client tools and APIs" in den Unterkapiteln "MySQL C API", "C API datatypes", "C API function overview" und "C API function descriptions" alle Informationen drin, wie man MySQL ohne irgendwelche Wrapper direkt aus C bzw. C++ heraus anspricht.

    Es gibt zwar APIs von Fremdanbietern, die auch auf der selben Seite angeboten sind, allerdings musst da entweder mit C# oder C++ Templates arbeiten und das ist beides nicht mein Fall.


    Nachtrag:
    Warum ich diese Methode bevorzuge:
    - Direkter Zugriff auf MySQL Funktionen so wie vom Hersteller gedacht sind
    - Keine Probleme mit weiteren zu installierenden Treibern (z.B. ODBC)
    - Programme k?nnen weitergegeben werden, ohne das auf dem Zielrechner irgendwas installiert werden muss (ODBC Treiber oder DLLs)

    Beitrag ge?ndert am 22.11 16:28 von 0-checka
  7. Autor dieses Themas

    screendevil

    screendevil hat kostenlosen Webspace.

    Ich bekommen es leider nicht hin :-(.

    Kannst du mir vielleicht ein beispiel script zeigen mit dem verbindungsaufbau unn einer kleinen abfrage ? w?re echt cool.:xyxthumbs:

    schon mal danke

    ScreenDevil:wow:

    Beitrag ge?ndert am 22.11 21:21 von screendevil
  8. 0******a

    #include <stdio.h>
    #include <winsock2.h>
    #include "d:\\mysql\\include\\mysql.h"


    #define MYSQL_SERVER "mysql.lima-city.de"
    #define MYSQL_USER "" // *
    #define MYSQL_PASS "" // *
    #define MYSQL_DBNAME "" // *
    // * = Daten aus DB Menue von lima-city ?bernehmen
    #define MYSQL_SELECT_QUERY "select * from blabla" // kein semikolon!!!

    int main()
    {
    &nbsp;&nbsp;MYSQL * pstMySQL;
    &nbsp;&nbsp;MYSQL_RES * pstQueryRes;
    &nbsp;&nbsp;MYSQL_ROW stSQLRow;
    &nbsp;&nbsp;my_ulonglong myulRowCount;
    &nbsp;&nbsp;unsigned int uiColCount;

    &nbsp;&nbsp;if ((pstMySQL = mysql_init(NULL)) == NULL)
    &nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr, "Fehler mysql_init()\n");
    &nbsp;&nbsp;&nbsp;&nbsp;return 1;
    &nbsp;&nbsp;}

    &nbsp;&nbsp;if (mysql_real_connect(pstMySQL,
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MYSQL_SERVER,
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MYSQL_USER,
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MYSQL_PASS,
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MYSQL_DBNAME,
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL,
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0)
    &nbsp;&nbsp;&nbsp;&nbsp;== NULL)
    &nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr, "%s\n", mysql_error(pstMySQL));
    &nbsp;&nbsp;&nbsp;&nbsp;return 1;
    &nbsp;&nbsp;}

    &nbsp;&nbsp;if (mysql_query(pstMySQL, MYSQL_SELECT_QUERY) != 0)
    &nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr, "%s\n", mysql_error(pstMySQL));
    &nbsp;&nbsp;&nbsp;&nbsp;mysql_close(pstMySQL);
    &nbsp;&nbsp;&nbsp;&nbsp;return 1;
    &nbsp;&nbsp;}

    &nbsp;&nbsp;if ((pstQueryRes = mysql_store_result(pstMySQL)) == NULL)
    &nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr, "%s\n", mysql_error(pstMySQL));
    &nbsp;&nbsp;&nbsp;&nbsp;mysql_close(pstMySQL);
    &nbsp;&nbsp;&nbsp;&nbsp;return 1;
    &nbsp;&nbsp;}

    &nbsp;&nbsp;mysql_close(pstMySQL);

    &nbsp;&nbsp;if ((myulRowCount = mysql_num_rows(pstQueryRes)) == 0)
    &nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;printf("No entries in selected table\n");
    &nbsp;&nbsp;&nbsp;&nbsp;return 1;
    &nbsp;&nbsp;}

    &nbsp;&nbsp;if ((uiColCount = mysql_num_fields(pstQueryRes)) == 0)
    &nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;printf("No entries in selected table\n");
    &nbsp;&nbsp;&nbsp;&nbsp;return 1;
    &nbsp;&nbsp;}

    &nbsp;&nbsp;for (my_ulonglong myTemp = 0; myTemp < myulRowCount; ulTemp++)
    &nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;stSQLRow = mysql_fetch_row(pstQueryRes);

    &nbsp;&nbsp;&nbsp;&nbsp;for (unsigned int uiTemp = 0; uiTemp < uiColCount; uiTemp++)
    &nbsp;&nbsp;&nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (uiTemp != 0)
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("\t|");

    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%s", stSQLRow[uiTemp]);

    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (uiTemp != (uiColCount - 1))
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\t");
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");
    &nbsp;&nbsp;&nbsp;&nbsp;}
    &nbsp;&nbsp;}

    &nbsp;&nbsp;return 0;
    }



    Nachtrag:
    Statt #inlcude "d:\\mysql[...]" den Pfad auf die eigene MySQL Installation eintragen.
    Das select Statement unter #define MYSQL_SELECT_QUERY anpassen. Am Besten eine Tabelle mit wenig Spalten nehmen oder im select Statement nur 3 oder 4 Spalten ausw?hlen. Die Ausgabe sieht dann nicht so verwirrend aus.
    Beim Kompilieren die Bibliotheken (*.lib) im Pfad {MySQL-Pfad}\lib\opt einbinden.
    In das Programmverzeichnis die DLL aus {MySQL-Pfad}\lib\opt kopieren.
    Dann sollte alles funktionieren.
    K?nnte sein, das Fehler beim Kompilieren auftreten, habs nicht gecheckt.


    Beitrag ge?ndert am 23.11 14:57 von 0-checka
  9. Autor dieses Themas

    screendevil

    screendevil hat kostenlosen Webspace.


    Beim Kompilieren die Bibliotheken (*.lib) im Pfad {MySQL-Pfad}\lib\opt einbinden.

    Wie geht das ???


    ScreenDevil



    Beitrag ge?ndert am 24.11 13:06 von screendevil
  10. 0******a

    Woher soll das hier jemand wissen? Wir wissen doch nicht einmal, was f?r einen Compiler (Versionsnummer) du hast. Ausserdem solltest du einfach mal in der Hilfedatei deines Compilers nachschauen, bevor du hier fragst. Schau nach den Stichworten lib, library oder Bibliothek nach. Es geht um das Einbinden von Fremdbibliotheken durch den Linker, wenn du so was findest, dann hast du die Antwort auf deine Frage. Wenn nicht, musst du mal die Versionsnummer deines Compilers angeben. Vielleicht hat ja jemand den selben und kann dir weiterhelfen.
  11. Autor dieses Themas

    screendevil

    screendevil hat kostenlosen Webspace.

    Ich habe von den Builder c++ 6 von borland...:wink:
  12. Autor dieses Themas

    screendevil

    screendevil hat kostenlosen Webspace.

    Leider bekomme ich das mit der mysql verbindung immer noch nicht hin.rown:
    K?nnet ihr mir ein ganz einfaches beispiel geben?
    zb: Ich habe eine DB namens B?cher, es gib eine Spalte buch id und buchname. Die b?cher sollen dann in dem TreeView von Borland ausgegeben werden. (Borland Builder C++)

    Wie kann ich das machen ???

    Danke sch?n
    ScreenDevil

    EDIT

    Hast du denn jetzt schon rausgefunden, wie du in deinem Compiler Fremdbibliotheken einbindest?

    ?hm n? :wow:, wie kann ich das den machen? ( Borland Builder C++ 6)

    Beitrag ge?ndert am 10.12 19:48 von screendevil
  13. 0******a

    Hast du denn jetzt schon rausgefunden, wie du in deinem Compiler Fremdbibliotheken einbindest?
  14. Hallo

    warum verwendest du denn nicht die Zeos Komponente
    (einfach einbinden und alle DB-Komponenten funktionieren damit)

    MfG
    Klaus
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!