Zum Inhalt springen

Datenbank in C++


BlueSkyDW

Empfohlene Beiträge

Hallo zusammen...

im Rahmen meiner Ausbildung will ich mich auch mit Datenbanken unter C++ vertraut machen. Wer kann mir hier helfen mit irgendwelchen Tipps, Links oder vielleicht sogar eigenen Datenbanken, um zu schauen, wie so etwas eingebunden wird?

Bitte helft mir, warum helfe ich immer anderen, nur mir niemand? :confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi!

Also, wenn du z.B. mit dem Borland C++ Builder Datenbankanwendungen erstellen willst, ist das ganz einfach. Da sind schon vorgefertigte Schnittstellen (ADO) drin.

Ansonsten gibt es meistens bei der entsprechenden Datenbank einen Prä-Compiler. Den muss man dann vor dem eigentlichen Compiler über den Quelltext laufen lassen, damit der die SQL-Abfragen in "normalen" C-Code umwandlelt und erst dann kann man diesen übersetzten.

Also. Sag einfach mal bescheid, mit welchem Compiler/Tool du arbeiten willst. Dann kann ich auf jeden Fall mehr sagen!

CU

Link zu diesem Kommentar
Auf anderen Seiten teilen

Tjas, da gibt es ein kleines Problem.

Auf meinem Rechner in der Firma arbeite ich mit Borland C++ Builder 5.0.

Da ich aber eher mal so abends auf die Schnelle programmiere, habe ich auf meinem Laptop Microsoft Visual Studio 6.0 Professional installiert und nutze so eigentlich eher das entsprechende Prog von Microsoft...

Also...?

Hast Du eventuell eine Datenbank schon einmal selber programmiert und kannst mir den Quelltext mal zur Verfügung stellen? :confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also mit Microsofts Visual Studio habe ich noch garnichts gemacht. Aber ist es nicht so, das man damit auch die Komponenten zusammenklicken kann? Oder verwechsel ich da jetzt was?

Wenn das der Fall ist, dann such doch einfach mal nach ADO-Komponenten oder so ähnlich.

Ansonsten wird es schon etwas härter. Aber nicht unmöglich, denke ich :) !

CU

Link zu diesem Kommentar
Auf anderen Seiten teilen

also beim msvc++ kannste nix "zusammenklicken" ...

naja egal..

also datenbank am beispiel eines adressprogramms:

(nicht getestet!!)

#include <iostream>

#include <fstream>

using namespace std;


class adressen	// klasse definieren, bsp "adressen"

{

	public:

		void lesen(daten*);	// um von einer datei datensätze auszulesen

		void schreiben(daten*);	// um in eine datei datensätze zu schreiben

		void ausgabe(nr);	// zum ausgeben der datensätze

		void eingabe(nr);	// zum eingeben der datensätze


	private:

		char name[256][256];	// 2d-charfelder für variablenund datensatznummer als index 

		char tel[256][256];	// ...

		char ort[256][256];	// ...

};


void adressen::lesen()	// funktion zum lesen aus der datei

{

	ifstream fin("Adressen.dat", ios::binary);	// fin wird zum öffnen von "adressen.dat" deklariert .. das ganze binär!


	if(!fin)	// falls ein fehler auftritt, oder die datei nicht vorhanden ist..etc

		cout<<"Fehler bei dateizugriff!!";

	else

	{

		fin.read((char*)daten,sizeof *daten);	// dateiinhalt wird ausgelesen.

		fin.close();	// datei wird geschlossen.

	}

}


void adressen::schreiben()	// funktion zum schreiben in eine datei

{

	ofstream fout("Adressen.dat", ios::binary);	// fout wird zum schreiben von "adressen.dat" deklariert .. das ganze binär!


	if(!fin)	// falls ein fehler auftritt, die datei nicht vorhanden ist..etc

		cout<<"Fehler bei dateizugriff!!";

	else

	{

		fout.write((char*)daten,sizeof *daten);	// komplette datensätze werden in datei geschrieben.

		fout.close();	// datei wird geschlossen.

	}

}


void adressen::ausgabe()		// funktion zum ausgeben von datensätzen

{

	cout<<"name: "<<name[nr]<<endl;	// der name der datensatznummer wird ausgegeben.

	cout<<"wohnort: "<<ort[nr]<<endl;	// der ort ausgegeben.

	cout<<"telefonnummer: "<<tel[nr]<<endl;	// die tel.nummer wird ausgegeben.

}


void adressen::eingabe()	// funktion zum eingeben von datensätzen

{

	// eingabe kram.. is denke ich mal alles klar......


	cout<<"name eingeben: ";	

	cin.ignore(1,'\n');

	cin.getline(name[nr], 256,'\n');


	cout<<"wohnort eingeben: ";

	cin.getline(ort[nr], 256,'\n');


	cout<<"telefonnummer eingeben: ";

	cin.getline(tel[nr], 256,'\n');

}


class adressen daten;


void main()

{

	int menu, nr = 0;	// menu zur auswahl, nr = datensatznummer.


	do	// solange bis 0 eingegeben wird (oder ein buchstabe.. lol)

	{

		cout<<"1 - datensatz eingeben.\n";

		cout<<"2 - datensatz ausgeben.\n";

		cout<<"3 - datensatz in datei speichern.\n";

		cout<<"4 - datensatz aus datei laden.\n";

		cout<<"0 - ende.\n";

		cin>>menu;


		switch(menu)

		{

			case 1:

				cout<<"datensatznummer eingeben(1 - 100): ";

				cin>>nr;

				daten.eingabe(nr-1);	// funktion eingabe wird die datensatznummer übergeben

				break;


			case 2:

				cout<<"datensatznummer eingeben(1 - 100): ";

				cin>>nr;

				daten.ausgabe(nr-1);	// funktion ausgabe wird die datensatznummer übergeben

				break;


			case 3:

				cout<<"\ndatensatz wird gespeichert\n";

				daten.speichern(*daten);	// funktion speichern wird der komplette datensatz übergeben

				cout<<"\ndatensatz ist gespeichert\n";

				break;


			case 4:

				cout<<"\ndatei wird geöffnet\n";

				daten.lesen(*daten);	// funktion lesen wird übergeben. kann probleme geben... habe aber keine lust mehr.. morgen vielleicht

				cout<<"\nsie können nun mit auswahl 2 ihre daten abrufen!\n";

				break;


			case 0:

				break;


			default:

				cout<<"\nfalsche eingabe!\n";

		}

	}while(menu != 0);

}

// dat wars  

[/code]

und schon haste eine kleine datenbank in c++ ;-)

wie gesagt, ich habe es nicht getestet... aber so der ansatz dürfte klar sein denke ich.

bye

ps: schafft euch mal einen [i]syntax-highlightning-ubb[/i] an :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

ADO (ja die mit der Goldkante) gibts bei M$ genauso, nämlich als COM-Wrapper der OLE DB. Über ODBC läuft dann das ganze unter dem Namen RDO. Wichtig ist halt, daß im System-DSN (für alle Benutzer) oder Benutzer-DSN (für die entsprechende Anmeldung) die ODBC-Datenquelle richtig vordefiniert ist, dann geht ein Zugriff auf die Elemente recht unkompliziert vor sich -> siehe MSDN.

Ein guter Buchtip für Win-Themen aller Art ist von Microsoft Press das "Microsoft Visual C++ 6 Programmierhandbuch" welches nämlich den Idealweg zu den gewünschten Lösungen mit allen Stolperfallen aufzeigt!

<FONT COLOR="#a62a2a" SIZE="1">[ 18. Oktober 2001 22:11: Beitrag 1 mal editiert, zuletzt von Crush ]</font>

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ Jamer

Ich glaube nicht, das BlueSkyDW auf eine selbstgeschriebende Datei-Datenbank zugreifen möchte. So wie ich das verstanden habe, möchte er viel lieber auf eine MySQL oder Access Datenbank zugreifen. Und das ist dann (leider) doch wieder gaanz anders zu lösen. Aber die Idee an sich ist natürlich nicht falsch :) !!!

@ Crush

Cool. Das wusste ich auch noch nicht. Jetzt habe ich auch wieder was dazu gelernt... :)

Man merkt es doch immer wieder, das es sich lohnt, hier ab und zu mal nur zum lesen und antworten vorbeizuschauen...

@ BlueSkyDW

Ist dein Problem mitlerweile gelöst? Wenn ja, dann sage doch mal bitte, wie du es gemacht hat. Würde mich (und vielleicht auch noch ein paar andere) interessieren.

CU

Magoo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...