mysql++ in Borland C++Builder 5 installieren.
-
Wunderschönen Guten Abend,
seid ca. 6 Wochen versuchen ein Kumpel und ich die MySQL Api in den Borland C++ Builder 5 einzubinden. Wir haben ca. 6 Milliarden Foren-Beiträge gelesen und doppelt so viele Turtorials ausprobiert. Ohne Erfolg.
Wir bitten euch, nein wir flehen euch an, bitte sagt uns, wie das funktioniert.
P.S. Das Tutorial von MySQL.com produziert nur Fehler.
P.P.S Das Prog das wir schreiben wollen muss bis zum 26.06.04 fertig sein. Bitte helft uns!
Liebe Grüße phigor & der kumpel
-
Hallo.
Bitte beschreibt mal was für Fehler kommen und so.
Welche lib, da von MySQL rein soll, weil es gibt viele davon. :|Das von MySQL.com produziert nur Fehler, aber er sagt auch welche.
Ihr müßt das alles schon mehr beschreiben, wenn einer nur "Hilfe" ruft (wie ihr 2), dann weiß man net was sache ist.Also beschreibt was für Fehler, was ihr gemacht habt.
-
Eigentlich wollten wir ja nur ein verständliches Tutorial aber bitte schön,
unsere Fehler:In der mysqlplus.mak steht:
BCB = C:\Programme\Borland\CBuilder5
Folgende Fehler macht der beim ausführen folgendem Befehles
C:\Programme\Borland\CBuilder5\mysql\src\sqlplus>make -fmysqlplus.mak
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
C:\Programme\Borland\CBuilder5\BIN\bcc32 -Od -Vx -Ve -X- -r- -a8 -5 -b-
-k -y -v -vi- -c -tW -tWM -w-par -IC:\Programme\Borland\CBuilder5\include;..\..\
include\mysql -D_DEBUG;NO_STRICT -n .\coldata.cpp .\connection.cpp .\datetime.cp
p .\field_names.cpp .\field_types.cpp .\manip.cpp .\query.cpp .\result.cpp .\set
.cpp .\sql_query.cpp .\string_util.cpp .\type_info.cpp .\vallist.cpp
Borland C++ 5.5.1 für Win32 Copyright (c) 1993, 2000 Borland
.\coldata.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
.\connection.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
Fehler E2303 .\resiter1.hh 56: Typname erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
*** 3 Fehler bei der Compilierung ***
.\datetime.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
.\field_names.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
Fehler E2303 .\resiter1.hh 56: Typname erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
*** 3 Fehler bei der Compilierung ***
.\field_types.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
Fehler E2303 .\resiter1.hh 56: Typname erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
*** 3 Fehler bei der Compilierung ***
.\manip.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
.\query.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
Fehler E2303 .\resiter1.hh 56: Typname erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
*** 3 Fehler bei der Compilierung ***
.\result.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
Fehler E2303 .\resiter1.hh 56: Typname erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
*** 3 Fehler bei der Compilierung ***
.\set.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
.\sql_query.cpp:
.\string_util.cpp:
.\type_info.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
.\vallist.cpp:
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_ba
se_type' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti
_sql_type_info()
Warnung W8038 .\type_info1.hh 23: Konstantenelement 'mysql_ti_sql_type_info::_de
fault' wurde nicht initialisiert. in Funktion mysql_ti_sql_type_info::mysql_ti_s
ql_type_info()
Fehler E2303 .\resiter1.hh 56: Typname erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
Fehler E2275 .\resiter1.hh 56: { erwartet
*** 3 Fehler bei der Compilierung ***
-
Habt Ihr diesen schon ausprobiert?
MySQL++ 1.7.1 von Arturs Aboltins
http://www.mysql.de/downloads/api-mysql++.htmlWenn ich MySQL benutzte, eigentlich immer über dieses Ding und im Anhang die Klasse, welche die gröbsten Funktionen enthalten. (Fehler nicht ausgeschlossen)
//--------------------------------------------------------------------------- #ifndef DatabaseH #define DatabaseH #include "Classes.hpp"; #include "mysql.h" //--------------------------------------------------------------------------- class TMySQLDatabase { private: MYSQL *mysql; void __fastcall Error(); protected: public: __fastcall TMySQLDatabase(); __fastcall ~TMySQLDatabase(); bool __fastcall RealConnect(AnsiString Host, AnsiString Username, AnsiString Password, AnsiString Database); bool __fastcall Connect(AnsiString Host, AnsiString UserName, AnsiString Password); bool __fastcall Query(AnsiString query); AnsiString __fastcall Abfrage(AnsiString abfrage); bool __fastcall ChangeUser( AnsiString Username, AnsiString Password, AnsiString Database); int __fastcall InsertID(); }; //--------------------------------------------------------------------------- extern TMySQLDatabase *MySQLDatabase; //--------------------------------------------------------------------------- #endif#include <vcl.h> #pragma hdrstop #include "Database.h" //--------------------------------------------------------------------------- #pragma package(smart_init) TMySQLDatabase *MySQLDatabase; //--------------------------------------------------------------------------- __fastcall TMySQLDatabase::TMySQLDatabase() { mysql = new MYSQL(); } //--------------------------------------------------------------------------- __fastcall TMySQLDatabase::~TMySQLDatabase() { mysql_close(mysql); } //--------------------------------------------------------------------------- bool __fastcall TMySQLDatabase::RealConnect(AnsiString Host, AnsiString Username, AnsiString Password, AnsiString Database) { if (mysql_init(mysql)) if (mysql_real_connect(mysql,Host.c_str(),Username.c_str(),Password.c_str(),Database.c_str(),NULL,NULL,NULL)) return true; else { Error(); return false; } else { Error(); return false; } } //--------------------------------------------------------------------------- bool __fastcall TMySQLDatabase::Query(AnsiString query) { if (!mysql_real_query(mysql,query.c_str(),query.Length() - 1)) return true; else { Error(); return false; } } //--------------------------------------------------------------------------- AnsiString __fastcall TMySQLDatabase::Abfrage(AnsiString abfrage) { TStringList *strRet = new TStringList(); AnsiString strTemp; MYSQL_RES *result; MYSQL_ROW row; unsigned int num_fields; unsigned int i; AnsiString test; if (!mysql_real_query(mysql,abfrage.c_str(),abfrage.Length())) { result = mysql_store_result(mysql); num_fields = mysql_num_fields(result); while ((row = mysql_fetch_row(result)) != 0) { for(i = 0; i < num_fields; i++) { strTemp = AnsiString(row[i]); strRet->Add(strTemp); test = strTemp; } } mysql_free_result(result); } else Error(); AnsiString temp = strRet->CommaText; delete strRet; return temp; } //--------------------------------------------------------------------------- void __fastcall TMySQLDatabase::Error() { ShowMessage(mysql_error(mysql)); } //--------------------------------------------------------------------------- bool __fastcall TMySQLDatabase::Connect(AnsiString Host, AnsiString UserName, AnsiString Password) { if(mysql_connect( mysql, Host.c_str(), UserName.c_str(), Password.c_str())) return true; else { Error(); return false; } } //--------------------------------------------------------------------------- bool __fastcall TMySQLDatabase::ChangeUser( AnsiString Username, AnsiString Password, AnsiString Database) { if(mysql_change_user(mysql, Username.c_str(), Password.c_str(), Database.c_str())) return true; else { Error(); return false; } } //--------------------------------------------------------------------------- int __fastcall TMySQLDatabase::InsertID() { return mysql_insert_id(mysql); }
-
Das ist toll, ziemlich genau das habe ich auch gesucht.
@goergisi:
Nicht, dass es einen Unterschied machen würde, eher aus Neugier: Ist die Klasse von Dir oder von Aboltins mitgeliefert?