Datenbank mit formblatt überarbeiten
-
hab eine datenbank verlinkt und ein Formblatt gebaut über das ich die daten in die Tabelle/Datenbak eingeben will. Ich möchte auf der Hauptseite einen Button machen der automatisch dies Formblatt öffnet und in der datenbank hinter dem letzten datensatz einen neuen erzeugt und dort sollen dann die daten dieses datenblattes eingeeben werden.
Bitte nur vernünftige antworten und nicht verweise auf die Faq wenns geht.
-
vexx schrieb:
Bitte nur vernünftige antworten
Antworten auf was? Ich sehe keine konkrete Frage.
-
Hättest du den beitrag gelesen dann wäre dir sicher meine Problemstellung aufgefallen aber für dich nocheinam "Ich möchte auf der Hauptseite einen Button machen der automatisch dies Formblatt öffnet und in der datenbank hinter dem letzten datensatz einen neuen erzeugt und dort sollen dann die daten dieses datenblattes eingeeben werden." Und damit du es verstehst, wie schaffe ich das die einzelnen Befehle wie insert oder Append (falls ich sie jetzt nicht richtig genannt habe bitte kommentare verkneifen) kenne ich schaffe es nur nicht sie einzubinden.
-
lol
Also um ehrlich zu sein verstehe ich aber auch nicht was du ueberhapt willst.
Da ist von 2 Units verbinden bis zu komplexen SQL-Datenbanken ja alles drin.Ich kann dir sagen wie du ein Button erstellst aber mehr monentan auch nicht.
Was fuer ein Formblatt fuer welche Datenbank???Moechtest du mit open oder ifstream auf die Datenbank zugreifen?
-
Deine "Aufgabenstellung" lässt sich in mindestens 4 Teile zerlegen und es ist nach wie vor nicht klar, womit konkret du Probleme hast.
- einen Button erzeugen?
- über den Butten eine Form anzeigen lassen?
- in einer Datenbank einen neuen Datensatz hinzufügen?
- Daten in einen Datensatz eintragen/ändern?Ausserdem fehlen Angaben zur von dir verwendeten DB bzw. der Art des Zugriffes darauf.
Auf jeden Fall solltest du mal das Datenbank-Tutorial in der FAQ und ggf. auch das in der Hilfe durcharbeiten. Ausserdem gibt es im \examples-Verzeichnis des BCB noch etliche Beispielprojekte zur Arbeit mit Datenbanken und den entsprechenden Komponenten.
-
Ich habe probleme damit über einen button ein bereits bestehendes Formblatt zu öffnen das automatisch einen neuen Datensatz erstellt. Hoff jetzt ist mein Problem verständlicher
-
Hallo
was meinst du mit "Formblatt"
willst du eine neue Form (TForm) oeffnen ?
(die Frage gab es schon so oft ....... -> such danach )MfG
Klaus
-
Nein wie das geht weiß ich ich möchte wissen wie man in der datenbank automatisch beim öffnen der form einen neuen datensatz öffnen und ansprechen kann. Immer wenn ich auf neuen film aufnehmen klicke soll sich mein Formblatt das ich zum eingeben der daten in meine datenbank benutzen will öffnen und gleichzeitig einen neuen datensatz öffnen und zu diesem springen. Ich weiß das es einen Befehl gibt, Append(), glaube ich aber ich kriege ihn nicht eingebunden. Immer wenn ich folgenden Code Verusche kriege ich fehlermeldungen,
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form2->Show();
Form1->DBGrid1->Append();
}
//---------------------------------------------------------------------------In Form 1 ist die datenbank die erweitert werden soll und in form 2 befinden sich die eingabefelder dazu. Ich schaffe es nur nicht dem programm zu sagen das er wenn der knopf gedrückt wird einen neuen Datensatz am ende der datenbank erstellen soll und diesen dann aktivieren soll so das ich im geöffneten fomblatt 2 die neuen daten eingeben kann und er diese in den neue erstellten datensatz schreiben kann.
Achja und welcher befehl löcht einen datensatz? Ich weiß das das auch alles mit dem DBNavigatot geht, aber ich möchte das nicht.
-
Hat sich erledigt weiß jetzt wie es geht trotzdem danke hier mal der korekte code für die die auch proble haben sollten.
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form2->Show();
Form1->Table1->Append();
}
//---------------------------------------------------------------------------Ich muß nur noch wissen welcher Befehl einen Datensatz löscht.
-
Hallo
was heisst loeschen auf Englisch (faengt mit d an)
Statt das mit TTable zu machen wuerde ich SQL vorziehen
MfG
Klaus
-
Form1->ADOBase->Open(); Form1->ADOBase->Append(); Form1->ADOBase->FieldValues["Nr"] = "blabla"; Form1->ADOBase->FieldValues["Tech"] = "blabla"; Form1->ADOBase->FieldValues["Model"] = "blabla"; Form1->ADOBase->FieldValues["SNR"] = "blabla"; Form1->ADOBase->FieldValues["Fehler"] = "blabla"; Form1->ADOBase->FieldValues["RMA"] = "noch bla"; Form1->ADOBase->FieldValues["BNr"] = Immer wider blabla"; Form1->ADOBase->FieldValues["Typ"] = typ ; Form1->ADOBase->FieldValues["KW"] = kw ; Form1->ADOBase->Post(); Form1->ADOBase->Close();Das hast du gemeint?
Du muss nur richtige Fielder einfügen!
Neu Satz wird automatisch erstelt.
mfg
-
Wer kann hier edetieren???
vor dem Immer......, bitte :<"> --- einfüfen.
Danke.
-
vexx schrieb:
Ich weiß das es einen Befehl gibt, Append(), glaube ich(...)
Achja und welcher befehl löcht einen datensatz?Die Hilfsfunktionen des BCB kennst Du aber und Du weißt auch, was Code-
Vervollständigung bedeutet und von SQL hast Du sicherlich auch mal was gehört?Gruß,
Alexander
-
Ich möchte gerne mal denjenigen sehen der mit SQL auf eine lokalen (Paradox-) Tabelle zugreift, damit ich mal so richtig lachen kann!
Aber das war ja hier auch nicht klar geäussert. 
Weiss jemand wie man ein
Table->Insert();abbricht, z.B. nach einer Exception? Also z.B. ein
Table->Post();nicht erwünscht ist oder auch nicht geht, weil sonst die DB nicht mehr konsistent ist. Sprich: ich suche eine Art Rollback-Funktion (Tabelle wird nicht gecached!), hat jemand eine Ahnung? Ich hab' in der Hilfe leider nichts passendes gefunden oder übersehen.
Sebo
-
SeboStone schrieb:
Ich hab' in der Hilfe leider nichts passendes gefunden oder übersehen.
Dann schau Dir doch mal die Hilfe zu TDatabase an.
Gruß,
Alexander
-
SeboStone schrieb:
Ich möchte gerne mal denjenigen sehen der mit SQL auf eine lokalen (Paradox-) Tabelle zugreift, damit ich mal so richtig lachen kann!
Dann fang mal an zu lachen. Ich greife grundsätzlich nur mit 'SQL' auf meine Paradoxtabellen zu. Bei Paradox ist der Unterschied, ob über TTable oder TQuery zugegriffen wird. Wird TQuery verwendet muss man auch SQL-Anweisungen in der Query verwenden. Die Verwendung von TQuery ist natürlich etwas komplexer, aber ist auch deutlich flexibler.
Vielleicht ist Dir ja nicht klar was SQL ist? SQL ist im Prinzip eine Scriptsprache, die alle Datenbanken verstehen. Auch wenn die Datenbanken vielleicht nur eine Teilmenge des Standards unterstützen, wie z.B. Paradox mit LocalSQL.
Was Du suchst sind Transaktionen. Und dies ist abhängig von der verwendeten Datenbank und den Zugriffskomponenten.
Grüße Jochen
-
Hallo
@SeboStone
:p
lach ruhig weiter - auch ich greife immer per SQL auf jede Datenbank zu
noch flexiblerer Zugriff ist doch fast unmoeglichVersuch dochmal statt einer Paradox-DB eine andere DB zu verwenden
(umstellung auf neue DB / und das ohne SQL)MfG
Klaus
-
SQL ist ein mächtiges Werkzeug, aber bei lokalen Datenbanken den Umweg über SQL? Und warum sollte man erst eine lokale Datei-basierende DB like Paradox benutzen und dann umstellen? Vor allem wenn die wirklichen DBMS viel leistungsfähiger (Funktionsumfang, SQL-Implementierung, speed, etc.) sind? Warum dann nicht gleich was richtiges nehmen? Zu Testzwecken? Schlechte Wahl, mit den Ergebnissen kann man dann sowieso nicht wirklich auf andere DBMS schliessen.
Ansonsten gebe ich Dir recht, eine Umstellung würde bedeuten fast alles neu zu programmieren. Aber das sollte man eigentlich schon vorher wissen. Nur wenn man viele verschiedene DBs anbieten will ist SQL das auch für lokale DBs der richtige Weg, finde ich.Sebo
-
Alexander Kempf schrieb:
Dann schau Dir doch mal die Hilfe zu TDatabase an.
...oder noch besser: TDataSet- damit Du nicht umsonst suchst

-
dschensky schrieb:
Alexander Kempf schrieb:
Dann schau Dir doch mal die Hilfe zu TDatabase an.
...oder noch besser: TDataSet- damit Du nicht umsonst suchst

Die Frage war wie man einen Rollback macht. Und da finde ich den Hinweis auf TDatabase und Transaktion nicht falsch?!?