Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » SQL-Tabelle mit C++ erzeugen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
31.08.2006, 10:23 Uhr
gipfelstuermer



Hallo,
ist es möglich mit C++ eine sql-Tabelle zu erzeugen? Ich habe aus vielen Dateien Informationen(Überschriften, Untertitel, Datumsangabe, Text, etc), die ich in einer SQL-Tabelle abspeichern möchte und anschließend diese Tabelle in eine Datenbank importieren möchte. Gibt es da schon Bibliotheken, die man dafür nutzen kann? Mir würde eine Tabelle mit Primärschlüssel vom Typ int und Text vom Typ text ausreichen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
31.08.2006, 10:30 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Du müsstest dich zunächst erstmal für eine Datenbank entscheiden. Diese Datenbank spricht du dann am besten mit den Mehtoden der mitgelieferten Bibliothek aus c++ an.

Ganz einfach und schnell zusammengeklickt geht das z.B mit mysql. Auf www.mysql.com kannst du dir da was runterladen... Vom Prinzip her könntest du auch Excel oder Acess ansprechen.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
31.08.2006, 12:48 Uhr
~gipfelstuermer
Gast



Zitat von Windalf:
Du müsstest dich zunächst erstmal für eine Datenbank entscheiden. Diese Datenbank spricht du dann am besten mit den Mehtoden der mitgelieferten Bibliothek aus c++ an.

Ganz einfach und schnell zusammengeklickt geht das z.B mit mysql. Auf www.mysql.com kannst du dir da was runterladen... Vom Prinzip her könntest du auch Excel oder Acess ansprechen.


Das habe ich schon versucht, bin aber kläglich gescheitert(mysql). Am einfachsten für mich ist nur eine Tabelle für mysql zu erstellen, damit ich das Datenbank importieren möchte. Ist nur eine einmalige Sache. Würde es auch manuell in die Datenbak eingeben, aber das sind ca. 2000 Datensätze.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
31.08.2006, 13:58 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


na du brauchst doch nur eine Tabelle anlegen und dann für jeden eintrag in deiner datei einen "INSERT" in deine Datenbank schreiben. Was dir das allerdings bringt das in ne Datenbank zu schreiben ist mir noch nicht so ganz klar... Was genau ist denn Ziel mit diesen Daten zu tun?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.09.2006, 11:19 Uhr
~gipfelstuermer
Gast



Zitat von Windalf:
na du brauchst doch nur eine Tabelle anlegen und dann für jeden eintrag in deiner datei einen "INSERT" in deine Datenbank schreiben. Was dir das allerdings bringt das in ne Datenbank zu schreiben ist mir noch nicht so ganz klar... Was genau ist denn Ziel mit diesen Daten zu tun?


Hi,
ich habe es nochmal versucht eine MySQL-Datenbank anzusprechen. Ich habe mit Xampp aufgesetzt. Und mir unter mysqc.com die Api runtergezogen und die eine dll in das entsprechende Verzeichnis kopiert. Nun habe ich ein Programm geschrieben.

#include <iostream>
#include <time.h>
#include <stdio.h>
#include <mysql.h>
#include <windows.h>

using namespace std;
int main () {

cout <<"asdas";
return(0);
}

Der VC++ gibt dann folgende Meldungen raus:

--------------------Konfiguration: mysql - Win32 Debug--------------------
Kompilierung läuft...
mysql.cpp
cmysql\include\mysql_com.h(185) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'fd'
cmysql\include\mysql_com.h(185) : error C2501: 'SOCKET' : Fehlende Speicherklasse oder Typbezeichner
cmysql\include\mysql_com.h(185) : error C2501: 'fd' : Fehlende Speicherklasse oder Typbezeichner
cmysql\include\mysql_com.h(349) : error C2065: 'SOCKET' : nichtdeklarierter Bezeichner
cmysql\include\mysql_com.h(349) : error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 's'
cmysql\include\mysql_com.h(350) : error C2059: Syntaxfehler : ')'
cprogramme\microsoft visual studio\vc98\include\winsock.h(35) : error C2378: 'SOCKET' : Neudefinition; Symbol kann nicht mit typedef überladen werden
cprogramme\microsoft visual studio\vc98\include\winsock.h(51) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'fd_array'
cprogramme\microsoft visual studio\vc98\include\winsock.h(51) : error C2501: 'SOCKET' : Fehlende Speicherklasse oder Typbezeichner
cprogramme\microsoft visual studio\vc98\include\winsock.h(51) : error C2501: 'fd_array' : Fehlende Speicherklasse oder Typbezeichner
cprogramme\microsoft visual studio\vc98\include\winsock.h(58) : error C2059: Syntaxfehler : ')'
cprogramme\microsoft visual studio\vc98\include\winsock.h(707) : error C2143: Syntaxfehler : Fehlendes ';' vor '__stdcall'

Fehler beim Ausführen von cl.exe.

mysql.obj - 55 Fehler, 19 Warnung(en)
(Habe die Meldungen abgschnitten, weil der Beitrag dann zu lang wird)

Was jetzt? Habe null Ahnung, was da abgeht. Anscheinend sind die winsock.h und mysql_com.h defekt, obwohl ich mir das kaum vorstellen kann.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
01.09.2006, 11:23 Uhr
ao

(Operator)


Lade mal mysql.h als letztes, hinter windows.h
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
01.09.2006, 12:08 Uhr
~gipfelstuermer
Gast



Zitat von ao:
Lade mal mysql.h als letztes, hinter windows.h

Hi,
Danke! Wußte nicht, daß es auf die Reihenfolge der Includes ankommt.
Jetzt sieht der Code folgendermaßen aus:

C++:
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <windows.h>
#include <mysql.h>

using namespace std;

int main ()  {
    MYSQL_RES *mTabelle;
//    MYSQL_ROW mRecord;
    MYSQL *mConnection, mDB;
    int mError;
    mysql_init(&mDB);
    mConnection =
mysql_real_connect(&mDB,"localhost","root","","test",0,0,0);
    if (mConnection == NULL)  {
        printf("Es konnte keine Verbindung zur Datenbank hergestellt werden: %s",mysql_error(&mDB));
        return 1;
    } else {
printf("Es wurde erfolgreich eine Verbindung hergestellt!");
    }
    mysql_close(mConnection);
    return 0;
}



Linker-Vorgang läuft...
mysqlprog.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_close@4
mysqlprog.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_error@4
mysqlprog.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_real_connect@32
mysqlprog.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_init@4
Debug/mysqlprog.exe : fatal error LNK1120: 4 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

mysqlprog.exe - 5 Fehler, 0 Warnung(en)

Diese Meldungen deuten darauf hin, daß er die zugehörige cpp-Datei(also mysql.cpp mit den in der mysql.h definierten Methoden) nicht finden kann. Ich habe nach dieser Datei gesucht, aber nichts gefunden? Wo ist denn der Trick?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.09.2006, 12:19 Uhr
~gipfelstuermer
Gast



Zitat von ~gipfelstuermer:
[quote ao]Lade mal mysql.h als letztes, hinter windows.h

Hi,
Danke! Wußte nicht, daß es auf die Reihenfolge der Includes ankommt.
Jetzt sieht der Code folgendermaßen aus:

C++:
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <windows.h>
#include <mysql.h>

using namespace std;

int main ()  {
    MYSQL_RES *mTabelle;
//    MYSQL_ROW mRecord;
    MYSQL *mConnection, mDB;
    int mError;
    mysql_init(&mDB);
    mConnection =
mysql_real_connect(&mDB,"localhost","root","","test",0,0,0);
    if (mConnection == NULL)  {
        printf("Es konnte keine Verbindung zur Datenbank hergestellt werden: %s",mysql_error(&mDB));
        return 1;
    } else {
printf("Es wurde erfolgreich eine Verbindung hergestellt!");
    }
    mysql_close(mConnection);
    return 0;
}



Linker-Vorgang läuft...
mysqlprog.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_close@4
mysqlprog.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_error@4
mysqlprog.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_real_connect@32
mysqlprog.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_init@4
Debug/mysqlprog.exe : fatal error LNK1120: 4 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

mysqlprog.exe - 5 Fehler, 0 Warnung(en)

Diese Meldungen deuten darauf hin, daß er die zugehörige cpp-Datei(also mysql.cpp mit den in der mysql.h definierten Methoden) nicht finden kann. Ich habe nach dieser Datei gesucht, aber nichts gefunden? Wo ist denn der Trick?[/quote]

Hat sich erledigt!! Danke!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
01.09.2006, 13:54 Uhr
xXx
Devil


hmm? Wasn nu? Musst das nur Linken
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
01.09.2006, 14:09 Uhr
~gipfelstuermer
Gast


Ich hatte den Linker nicht richtig konfiguriert.

So, ich habe die Tabelle fertig erzeugt mit "Create Table buch( id INTEGER NOT NULL, autor char(20), titel (20), preis FLOAT(5,2), jahr YEAR)".

Ich habe id als int, autor und titel als string, preis ist float und jahr habe ich als int zur Verfügung. Diese Daten sind in einem Objekt gekapselt, die ich auch ohne Probleme rausholen kann. Wie muss ich denn die mysql_query schrreiben, damit die Daten aus dem C++-Prgramm in mysql-query eingefügt werden kann? Bis jetzt kann ich nur vom C++ Programm unabhängige feste Befehle eingeben(wie drop), aber keine Daten aus dem C++ Programm in die Tabelle einfügen.




C++:
MYSQL_RES *mTabelle;
    MYSQL_ROW mRecord;
    MYSQL *mConnection, mDB;
    int mError;
    mysql_init(&mDB);
    mConnection =
mysql_real_connect(&mDB,"localhost","root","","test-datenbank",0,0,0);
    if (mConnection == NULL)  {
        printf("Es konnte keine Verbindung zur Datenbank hergestellt werden: %s",mysql_error(&mDB));
        return 1;
    } else {
printf("Es wurde erfolgreich eine Verbindung hergestellt!");
    }

    mysql_query(mConnection, "DROP TABLE test-tabelle");
    mysql_close(mConnection);

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: