![]() |
Datenbank: sry keine Ahnung? • Version: ? • Zugriff über: sry leine Ahnung :/
Newbie braucht Hilfe mit Datenbanken
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.
Ich will in meinem Programm Daten über Kunden abspeichern. Meine Oberfläche: (Anhang: Form.jpg) Mein Quellcode:
Code:
In die Komponente Table1: TTable habe ich bei DataBaseName meinen Dateipfad zu meiner Datei "Kunden.db" angegeben. Und bei TableName "Kunden.db".
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, Mask, DBCtrls, DB, DBTables, ExtCtrls; type TForm2 = class(TForm) MainMenu1: TMainMenu; Date1: TMenuItem; zurck1: TMenuItem; N1: TMenuItem; Schlieen1: TMenuItem; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; DBText1: TDBText; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TDBEdit; DBEdit6: TDBEdit; DBEdit7: TDBEdit; DBEdit8: TDBEdit; DBEdit9: TDBEdit; DBEdit10: TDBEdit; Table1: TTable; DataSource1: TDataSource; BtnFirst: TButton; BtnPrior: TButton; BtnNext: TButton; BtnLast: TButton; CheckBox1: TCheckBox; BtnNew: TButton; BtnStore: TButton; BtnCancel: TButton; BtnDelete: TButton; procedure Schlieen1Click(Sender: TObject); procedure BtnNewClick(Sender: TObject); procedure BtnStoreClick(Sender: TObject); procedure BtnDeleteClick(Sender: TObject); procedure BtnPriorClick(Sender: TObject); procedure BtnFirstClick(Sender: TObject); procedure BtnNextClick(Sender: TObject); procedure BtnLastClick(Sender: TObject); procedure BtnCancelClick(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Table1AfterEdit(DataSet: TDataSet); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private-Deklarationen } procedure setButtons(m: Byte); public { Public-Deklarationen } end; var Form2: TForm2; implementation uses JH_Designs; {$R *.dfm} var pos: TBookmark; procedure TForm2.setButtons(m: Byte); begin case m of 0: begin BtnNew.Enabled := False; BtnStore.Enabled := False; BtnCancel.Enabled := False; BtnDelete.Enabled := False end; 1: begin BtnNew.Enabled := True; BtnStore.Enabled := False; BtnCancel.Enabled := False; BtnDelete.Enabled := True end; 2: begin BtnNew.Enabled := False; BtnStore.Enabled := True; BtnCancel.Enabled := True; BtnDelete.Enabled := False end end end; procedure TForm2.Schlieen1Click(Sender: TObject); begin Form1.Visible:=True; Close; end; procedure TForm2.BtnPriorClick(Sender: TObject); // Zurück begin Table1.Prior; BtnLast.Enabled := True; BtnNext.Enabled := True; if Table1.BOF then BtnFirstClick(Self) end; procedure TForm2.BtnFirstClick(Sender: TObject); // Erster begin Table1.First; BtnLast.Enabled := True; BtnNext.Enabled := True; BtnPrior.Enabled := False; BtnFirst.Enabled := False end; procedure TForm2.BtnNextClick(Sender: TObject); // Vorwärts begin Table1.Next; BtnFirst.Enabled := True; BtnPrior.Enabled := True; if Table1.EOF then BtnLastClick(Self) end; procedure TForm2.BtnLastClick(Sender: TObject); // Letzter begin Table1.Last; BtnFirst.Enabled := True; BtnPrior.Enabled := True; BtnLast.Enabled := False; BtnNext.Enabled := False end; procedure TForm2.BtnNewClick(Sender: TObject); // Neu begin Table1.Append; setButtons(2) end; procedure TForm2.BtnCancelClick(Sender: TObject); // Rückgängig begin Table1.Cancel; Table1.Edit; setButtons(1) end; procedure TForm2.CheckBox1Click(Sender: TObject); // Lese-/Schreibzugriff begin pos := Table1.GetBookmark; // Position merken Table1.Active := False; if CheckBox1.Checked = True then // Schreibschutz begin Table1.ReadOnly := True; setButtons(0) end else // Lesen und Schreiben begin Table1.ReadOnly := False; setButtons(1) end; Table1.Active := True; Table1.GotoBookmark(pos); // Position wiederherstellen end; procedure TForm2.Table1AfterEdit(DataSet: TDataSet); // irgendwas eingegeben begin setButtons(2) end; procedure TForm2.BtnStoreClick(Sender: TObject); // Speichern begin Table1.Post; Table1.Edit; setButtons(1) end; procedure TForm2.BtnDeleteClick(Sender: TObject); // Löschen begin if MessageDlg('Wollen Sie den Kunden wirklich löschen?', mtWarning,[mbYes, mbNo], 0) = mrYes then begin Table1.Delete; Table1.Edit end end; procedure TForm2.FormCreate(Sender: TObject); begin setButtons(0) end; procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin Form1.Visible:=True; end; end. Und in die Komponente DataSource1: TDataSource habe ich bei DateSet "Table1" hingeschrieben. Des weiteren habe ich bei jedem Datenbank-Label oder -Editfeld unter Eigenschaften DataSource "DataSource1" angegeben und unter DataField jedem einen individuellen Namen zugeordnet. Trotz all dem kommt eine Fehlermeldung. Kann mir jemand helfen? Am besten wäre es mir per Skype oder Teamspeak damit ich direkt nachfragen beantworten und auch stellen kann. Ich bedanke mich schon einmal vorneweg für die Antworten:) Danke |
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
|
AW: Newbie braucht Hilfe mit Datenbanken
Sorry. Habe ich vergessen :/
Die Fehlermeldung beim kompilieren auf den Button "Neuer Kunde" drücke ist folgende: Im Projekt JHDesigns.exe ist eine Exception der Klasse EDatabaseError aufgetreten. Meldung: 'Table1: Operation bei geschlossener Datenmenge nicht ausführbar'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. Die Fehlermeldung ist wenn ich die .exe ausführe und dann auf den Button drücken ist: Table1: Operation bei geschlossener Datenmenge nicht ausführbar. |
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
|
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
:wall: |
AW: Newbie braucht Hilfe mit Datenbanken
Mal als Tipp an meine zwei Vorposter. Schaut mal in der Zeile über den Beitrag:
Zitat:
Versetzt euch doch in die Lage von jemandem, der solchen Code schreibt, wie ihr ihn dort sehen könnt. :cyclops: Liebe Grüße, Valentin |
AW: Newbie braucht Hilfe mit Datenbanken
Und welchen Tipp habt ihr für mich? Es ist mein erstes mal wo ich an Datenbankprogrammierung gehe. UNd auf YouTube oder so findet man zu Delphi halt nicht viel:(
|
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
![]() und falls Du nur einen Tipp willst: in TForm2.FormCreate(Sender: TObject); ein Table1.open; einfügen Zitat:
|
AW: Newbie braucht Hilfe mit Datenbanken
@ Lemmy
Danke für den Tipp :) Aber jetzt kommt eine neue Fehlermeldung und jetzt schon beim kompilieren: Im Projekt JHDesigns.exe ist eine Exception der Klasse EDatabaseError aufgetreten. Meldung: 'DBEdit10: Das Feld 'DBPW' wurde nicht gefunden'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. |
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
Du greifst auf ein Feld (auch "Spalte" der Datenbank) zu, dessen Name "DBPW" nicht existiert (z.B. Table1.FieldByName('DBPW').xx). Tippfehler? Anbei noch eine Bemerkung bzw. Tipp - falls es noch nicht geschrieben wurde: Benenne doch Deine Komponenten richtig, dann wird der Code gleich viel übersichtlicher (z.B: DBEdtVorname, DBEdtNachname statt Edit1, Edit2) und Fehler lassen sich daher doch hin und wieder leichter finden... Grüsse, Michael |
AW: Newbie braucht Hilfe mit Datenbanken
Beim Kompilieren kommt diese Fehlermeldung garantiert nicht.
|
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
Zitat:
![]() |
AW: Newbie braucht Hilfe mit Datenbanken
An alle die die mich hier fertig machen wollen. Ich habe mir Einsteiger Tutorials angeschaut, die gehen aber alle über Datenbanken. Ich kann aber nicht über eine Datenbank gehen. Ich MUSS über die Datei gehen (Kunden.DB)!
Ich bin erst im zweiten Jahr wo ich Delphi lerne und ich habe noch keine Datenbanken behandelt also habe ich mich an das Forum hier gewandt weil ich gedacht habe hier kann mir jemand helfen. Da habe ich mich wohl getäuscht. |
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
|
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
Zitat:
Ich hab mir Deinen Code nicht angesehen, aber vielleicht hilft es Dir: Deine "Datenbank" ist vermutlich ein Verzeichnis mit einer oder einer Reihe von .DB Dateien. Nennt sich vermutlich Paradox. Diese Datenbank hat die Eigenart, dass alle .DB Dateien in einem Verzeichnis sie zu einer solchen machen, also nichts weiter als ein Haufen Dateien im gleichen Verzeichnis. Die Tutorials, die Du gelesen hast, dürften also nicht so falsch / unpassend gewesen sein. Vielleicht geht Dir jetzt langsam ein Licht auf. |
AW: Newbie braucht Hilfe mit Datenbanken
Also dein Quelltext hab ich doch schon mal wo gelesen.
Die Bücher von Walter Doberenz und Thomas Kowalski haben mir immer sehr geholfen. :wink: |
AW: Newbie braucht Hilfe mit Datenbanken
Ja der Quelltext ist aus dem Buch BORLAND DELPHI 7 von HANSER Verlag Doberenz und Gewinnus. Das Beispielprogramm läuft ja auch aber wenn ich dann weitere Komponenten hinzufüge funktioniert es nicht mehr:(
|
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
:glaskugel: Oh große Glaskugel sage mir, von welchen Komponenten spricht er hier? |
AW: Newbie braucht Hilfe mit Datenbanken
DBEdit-Komponenten.
Sorry. Ich vergesse immer dass ihr das nicht wisst und ich euch das sagen muss -.- |
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
Ohne genau zu wissen, was Du gemacht hast, wird es schwierig sein, Dir zu helfen.:( Du hast doch noch eine Unit Form1. Was macht die? Greifst Du von da aus auf irgendwelche Datenbankkomponenten zu? |
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
Und wie zuvor schon öfter angedeutet ist das Problem, dass hier an manchen Stellen an denen die Datenmenge bearbeitet wird (Post, Append, etc.) ein vorhergehendes Open fehlt. Und: Selbst eine XML-Datei ist, wenn sie über entsprechende Provider angesprochen wird (die, die es erst ermöglichen DBEdits und Co einzusetzen), innerhalb der Delphientwicklung als defacto Datenbank anzusehen. Alle Vorgänge sind praktisch identisch aus Sicht des Programmierers. Daher sind die Tutorials ganz genau das, was dir hilft da tiefer einzusteigen. Noch etwas: Wenn du meinst, man wolle dich "runter machen", dann ist das eine für Foren ganz schädliche Einstellung. Schädlich für dich allerdings nur. Wenn du es nicht erträgst, dass man fachlich nüchtern nachfragt, dich berechtigterweise auf Fehler hinweist (nicht nur im Code, sondern auch deiner Art zu fragen!), dann ist das zunächst einmal nichts weiter als eine Information. Du kannst dann selbst entscheiden, ob du dich darüber aufregen willst, dich angegriffen fühlst, oder es als Anreiz nimmst deine Formulierungen deutlicher und mit mehr Infos zu machen. Hier wurde noch niemals ein Neuling schief angemacht, nur weil er neu ist. Du musst dir einfach nur darüber im Klaren sein, dass keiner von uns in deine Gedankengänge schauen kann, und dass alle Probleme auf 1000 Arten angegangen werden können. Es ist an dir uns auf deinen Weg mitzunehmen, so dass man überhaupt eine Chance hat dir zu helfen. Die richtige Terminologie (und wenn man sie nicht kennt bitte nicht einfach nach Gutdünken falsch nutzen, sondern umschreiben und nachfragen!) und vollständige Infos sind einfach die aller unterste Basis jeder Hilfestellung. Beispiel: "Hallo Leute, wie baue ich einen Tisch!? Meiner fällt immer um!" Es gibt sicherlich zigtausende Arten einen Tisch zu bauen. Hier fehlt z.B.: Welche Materialien? Holz: Welches? Gemischt: Was an welcher Stelle? Welche Güte? Wann fällt er um? In welche Richtung? Fällt er nicht etwa eher zusammen, statt um? Was für Werkzeug hast du? Was ist die grobe Form des Tisches, und geht du ggf. nach einem vorhandenen Muster vor? Wie sieht der Tisch kurz vorm umfallen aus, wie danach, und was hättest du eigentlich erwartet was statt des umfallens in diesem Moment hätte passieren sollen? Wie soll der Tisch aussehen wenn er fertig ist, und an welchem Schritt genau hapert es? Alles Dinge, die man einem Fragesteller entweder in Kleinarbeit aus der Nase ziehen muss (und es ist ja nicht so, als gäbe es nicht viele davon), oder der Frager hat sich ausreichend mit dem Problem befasst, so dass er es gleich am Anfang so schildert, dass man als (kostenloser, freizeitlicher und altruistischer) Antworter das Problem zu packen bekommt, und nicht erst 2 Seiten lang drum herum tänzeln muss. Sei versichert: Es hilft am Ende vor allem dem Frager. Wenn du jetzt noch immer beleidigt bist, dann ist Informatik nichts für dich. |
AW: Newbie braucht Hilfe mit Datenbanken
Ich habe jetzt durch Zufall mein Problem gefunden und weis auch wie ich es beheben kann.
Thema kann also geschlossen werden :) |
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
So würde dieser Thread vielleicht auch für den nächsten Suchenden hilfreich sein. |
AW: Newbie braucht Hilfe mit Datenbanken
Das Problem war folgendes:
Die Komponenten (DBEdit und DBLabel) waren alle richtig angelegt. Nur in der Datei Kunden.db waren diese neuen Komponenten nicht hinzugefügt. Deswegen auch die Fehlermeldung ...existiert nicht. Mit dem Programm Datenbankoberfläche (unter Windows 7 mit Kompatibilitätsproblemen) könnte ich die Datei öffnen und die Tabelle erweitern. Und nun läuft das Teil. Wenn nochmal jemand so ein Problem hat und näheres zum Lösungsweg wissen will, hier meine Kontaktmöglichkeiten skype: jan.philip97 |
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
Um solchen Unsinn in Zunkunft zu vermeiden, solltest du korrekte Begriffe verwenden. Du meinst vermutlich etwas ganz anderes? Aber ich will hier nicht herumraten müssen, es ist deine Aufgabe, zu lernen, was eine Komponente ist. Auf jeden Fall dienen datensensitive Komponenten der Darstellung und Bearbeitung von Datenmengen und können lediglich Delphi-Formularen hinzugefügt werden. |
AW: Newbie braucht Hilfe mit Datenbanken
Ja. Und der Komponente DBEdit weist man einen Namen zu unter DataField. Sagen wir dort steht "PW" dann muss in der Tabelle der Datei xxx.DB auch eine Spalte mit "PW" existieren.
Ach ist doch egal. Mein Programm funktioniert. Was soll ich mich hier jetzt noch mit dir darüber unterhalten und mich nur aufregen! |
AW: Newbie braucht Hilfe mit Datenbanken
Thema gilt als geschlossen von meiner Seite aus
-------------------------------------------------------------------------------------------------------------------------- |
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
|
AW: Newbie braucht Hilfe mit Datenbanken
Zitat:
Wie bereits erwähnt erschwerst du dir selbst das Leben im Allgemeinen und die Hilfestellung hier im Besonderen, wenn du dich nicht korrekt auszudrücken weißt. Diesem Umstand kannst alleine du selbst abhelfen. Zitat:
Zitat:
|
AW: Newbie braucht Hilfe mit Datenbanken
Fehler hin oder her - wenn jemand neu mit dem Thema Datenbanken beginnt, dann ist klar, dass ihm da viele für ihn neue Begrifflichkeiten entgegen kommen. Natürlich kann dies zu Missverständnissen führen und das sollten wir auch stets berücksichtigen. Dennoch sollten wir stets ein Bewusstsein dafür haben, wenn sich jemand neu in ein Thema einarbeitet und unsere Ausdrucksweise entsprechend anpassen. Franks Antworten kommen wohl ruppiger herüber, als sie gemeint sind.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz