Mysql DB verbindung mit builder c++...
lima-city → Forum → Programmiersprachen → C/C++ und D
apis
beitrag
bibliothek
borland
builder
compiler
datei
einfaches beispiel
entsprechenden bibliotheken
fehler
hersteller
komponente
nachtrag
nativ
null
ordner
spalt
statement
versionsnummer
zielrechner
-
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.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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 -
kann mir denn keiner helfen ? Ich brauche nur eine richtige beschreibung, wie ich mit dem borland builder c++ zu einer mysql db conecte !!!!
Hilfeee -
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 -
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
Beitrag ge?ndert am 22.11 21:21 von screendevil -
#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()
{
MYSQL * pstMySQL;
MYSQL_RES * pstQueryRes;
MYSQL_ROW stSQLRow;
my_ulonglong myulRowCount;
unsigned int uiColCount;
if ((pstMySQL = mysql_init(NULL)) == NULL)
{
fprintf(stderr, "Fehler mysql_init()\n");
return 1;
}
if (mysql_real_connect(pstMySQL,
MYSQL_SERVER,
MYSQL_USER,
MYSQL_PASS,
MYSQL_DBNAME,
0,
NULL,
0)
== NULL)
{
fprintf(stderr, "%s\n", mysql_error(pstMySQL));
return 1;
}
if (mysql_query(pstMySQL, MYSQL_SELECT_QUERY) != 0)
{
fprintf(stderr, "%s\n", mysql_error(pstMySQL));
mysql_close(pstMySQL);
return 1;
}
if ((pstQueryRes = mysql_store_result(pstMySQL)) == NULL)
{
fprintf(stderr, "%s\n", mysql_error(pstMySQL));
mysql_close(pstMySQL);
return 1;
}
mysql_close(pstMySQL);
if ((myulRowCount = mysql_num_rows(pstQueryRes)) == 0)
{
printf("No entries in selected table\n");
return 1;
}
if ((uiColCount = mysql_num_fields(pstQueryRes)) == 0)
{
printf("No entries in selected table\n");
return 1;
}
for (my_ulonglong myTemp = 0; myTemp < myulRowCount; ulTemp++)
{
stSQLRow = mysql_fetch_row(pstQueryRes);
for (unsigned int uiTemp = 0; uiTemp < uiColCount; uiTemp++)
{
if (uiTemp != 0)
printf("\t|");
printf("%s", stSQLRow[uiTemp]);
if (uiTemp != (uiColCount - 1))
printf("\t");
else
printf("\n");
}
}
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 -
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 -
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.
-
Ich habe von den Builder c++ 6 von borland...
-
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? , wie kann ich das den machen? ( Borland Builder C++ 6)
Beitrag ge?ndert am 10.12 19:48 von screendevil -
Hast du denn jetzt schon rausgefunden, wie du in deinem Compiler Fremdbibliotheken einbindest?
-
Hallo
warum verwendest du denn nicht die Zeos Komponente
(einfach einbinden und alle DB-Komponenten funktionieren damit)
MfG
Klaus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage