Da bei Änderungen des Pfades der Datenbank die ADOTable1 öfters vom Programm automatisch auf inaktiv gesetzt wird, empfiehlt es sich, bei Laufbeginn die ADOTable1 gleich zu aktivieren:
void __fastcall TForm1::ffenDB1Click(TObject *Sender) { FDTable1->Active=true; Label1->Caption="Datenbank: aktiv"; }
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 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); }
void einfuegen(TDataSet* h) {h->Last(); // Dateizeiger wird ans Ende der Datenbank gestellt h->Append(); // Leerer Datensatz wird angehängt h->FieldByName("VNName")->AsAnsiString=Form1->Edit1->Text; h->FieldByName("Strasse")->AsAnsiString=Form1->Edit2->Text; h->FieldByName("Ort")->AsAnsiString=Form1->Edit3->Text; h->FieldByName("PLZ")->AsLargeInt=Form1->Edit4->Text.ToInt(); h->Post(); // Datensatz wird in der Datenbank aktualisiert } void __fastcall TForm1::Button1Click(TObject *Sender) { einfuegen(FDTable1); }
void Editieren(TDataSet *t,AnsiString inhalt) { bool gefunden=false; t->First(); while (!t->Eof) { AnsiString s = t->FieldByName("VNName")->AsString; if(inhalt==s) { // ShowMessage(t->FieldByName("Name")->AsString+" "+t->FieldByName("Lebensdaten")->AsString); // gefunden=true; Form1->Edit1->Text=t->FieldByName("VNName")->AsString; Form1->Edit2->Text=t->FieldByName("Strasse")->AsString; Form1->Edit3->Text=t->FieldByName("Ort")->AsString; Form1->Edit4->Text=t->FieldByName("PLZ")->AsString; gefunden=true; break; } t->Next(); } if(!gefunden) ShowMessage("Es konnte kein Datensatz gefunden werden!"); } void __fastcall TForm1::Button2Click(TObject *Sender) {AnsiString s = InputBox("Datensatz editieren", "Welcher Datensatz", ""); Editieren(FDTable1,s); } //---------------------------------------------------------------------------
void Speichern(TDataSet* h) {h->Edit(); h->FieldByName("VNName")->AsAnsiString=Form1->Edit1->Text; h->FieldByName("Strasse")->AsAnsiString=Form1->Edit2->Text; h->FieldByName("Ort")->AsAnsiString=Form1->Edit3->Text; h->FieldByName("PLZ")->AsLargeInt=Form1->Edit4->Text.ToInt(); h->Post(); } void __fastcall TForm1::Button3Click(TObject *Sender ) { Speichern(FDTable1); }
void loeschen(TDataSet *t,AnsiString inhalt)
{
t->First();
while (!t->Eof)
{
AnsiString s = t->FieldByName("VNName")->AsString;
if(inhalt==s)
{ t->Delete();
break;
}
t->Next();
}
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
loeschen(FDTable1, InputBox("Datensatz löschen", "Welcher Datensatz", ""));
}
void transfer(TDataSet* h1, TDataSet* h2) {h1->First(); h2->Last(); while (!h1->Eof) { // Datentransfer h2->Append(); h2->FieldByName("Name")->AsAnsiString=h1->FieldByName("Name")->AsAnsiString; h2->FieldByName("Lebensdaten")->AsAnsiString=h1->FieldByName("Lebensdaten")->AsAnsiString; h2->Post(); // Zeiger positionieren h1->Next();h2->Last(); } } void __fastcall TForm1::Button1Click(TObject *Sender) {transfer(FDTable1,FDTable2); }