====== Übungen Visual-CPP Datenbanken ======
===== Bsp Mathematiker =====
* Erstelle eine Access-Datenbank (math.accdb). In dieser Datenbank sollen in einer Tabelle ''mathematiker'' die Daten berühmter Mathematiker gespeichert werden.
* Aufbau der Access-Tabelle:
|Name|Text 20|
|Lebensdaten|Text 30|
* Testeinträge
|Name|Lebensdaten|
|Pythagoras|570 - 510|
|Euklid|365 - 300|
|Al-Chwarizmi|780 - 835|
|Pascal|1623 - 1662|
|Euler|1707 - 1783|
|Gauß|1777 - 1855|
* Erstelle folgende Buttons
* Daten anzeigen: Die Tabelle mathematiker der Datenbank math.db soll in einer DBGrid angezeigt werden und mittels DBNavigator durchgesehen werden können.
* Daten übertragen: Der Inhalt der Datenbank soll in eine ListBox übertragen werden. Dabei soll zwischen dem Namen und den Lebensdaten ein „;“ eingefügt werden.
* Sortiert speichern: Die Daten sollen in einer Memokomponente geschrieben werden und von der Memokomponente aus alphabetisch sortiert in eine CSV-Datei geschrieben werden (math.csv). Überprüfe Dein Ergebnis indem Du die Datei anschließend in Excel öffnest.
* Neue Daten: über ein 2. Formular sollen neue Daten in die Datenbank eingegeben werden können.
* Suche: Nach Datensätzen soll gesucht werden könnnen, wird der gewünschte Datensatz nicht gefunden, soll eine entsprechnede Meldung ausgegeben werden.
{{:programmierung:DB1.png}}
#include
#pragma hdrstop
#include "DB1Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{ DBNavigator1->Visible="true";
DBGrid1->Visible="true";
}
//---------------------------------------------------------------------------
void show(TDataSet* t)
{t->First();
while (!t->Eof) {
AnsiString s = t->FieldByName("Name")->AsString+";"+t->FieldByName("Lebensdaten")->AsString;
Form1->ListBox1->Items->Add(s);
t->Next();
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{show(FDTable1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{ ListBox1->Sorted=true;
if (SaveDialog1->Execute())
ListBox1->Items->SaveToFile(SaveDialog1->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{ Form2->ShowModal();
}
//---------------------------------------------------------------------------
void Suche(TDataSet *t,AnsiString inhalt)
{
bool gefunden=false;
t->First();
while (!t->Eof)
{
AnsiString s = t->FieldByName("Name")->AsString;
if(inhalt==s)
{
ShowMessage(t->FieldByName("Name")->AsString+" "+t->FieldByName("Lebensdaten")->AsString);
gefunden=true;
}
t->Next();
}
if(!gefunden)ShowMessage("Es konnte kein Datensatz gefunden werden!");
}
void __fastcall TForm1::Button5Click(TObject *Sender)
{
AnsiString suche=InputBox("Suche","Name eingeben","");
Suche(FDTable1, suche);
}
//---------------------------------------------------------------------------
{{:programmierung:DB2.png}}
#include "DB1Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void Eingabe(TDataSet* t)
{t->Append(); // Leerer Datensatz wird an die Tabelle angehängt
t->FieldByName("Name")->AsAnsiString = Form2->Edit1->Text;
t->FieldByName("Lebensdaten")->AsAnsiString = Form2->Edit2->Text;
}
void __fastcall TForm2::Button1Click(TObject *Sender)
{Eingabe(Form1->FDTable1);
Form2->Close();
}
----
[Physik1DB]
DriverID=MySQL
Server=127.0.0.1
Database=physik
User_Name=root
Password=
[Physik2DB]
DriverID=MSAcc
Database=D:\06Datenbank\physik.mdb