![]() |
Datensätze speichern in einer Datenbank
Hallo :)
Ich benutze delphi2009 und habe ein kleines Adressbuch programmiert. Jetzt sollen die eingertagenden Werte aber in einer Datenbanke gespeichert werden. Ich habe keine Ahnung wie das funktionieren soll und bin totaler Anfänger in Delphi. Wäre nett wenn ihr mir ein paar tipps geben könntet :) LG Kleine (: |
AW: Datensätze speichern in einer Datenbank
Schau einmal hier:
![]() |
AW: Datensätze speichern in einer Datenbank
ja da hatte ich auch schon geschaut.
So peinlich das jetzt aber auch ist, ich komm bei der 2.Seite schon nicht weiter Zitat:
|
AW: Datensätze speichern in einer Datenbank
Na gut, IIRC ist die Datenbankoberfläche Teil der BDE, welche wohl standardmäßig aus gutem Grund nicht mehr automatisch mit installiert wird, da sie hoffnungslos veraltet ist. Welche Datenbank sollt Ihr denn verwenden und wie ist Euer Kenntnisstand bzgl. Datenbanken allgemein?
|
AW: Datensätze speichern in einer Datenbank
Also ich sollte jetzt Advantage Data Architect benutzen.
Versuch da jetzt mal ein bischen rumzutüdeln. Mir qualmt der Kopf :D |
AW: Datensätze speichern in einer Datenbank
Zu Advantage kann ich leider nicht viel sagen, ich habe vorletztes Jahr eine Entwicklerlizenz bekommen, diese aber noch nicht wirklich intensiv ausprobiert. Aber zu ADS-spezifischen Dingen kann Dir sicherlich der User joachimd weiterhelfen.
|
AW: Datensätze speichern in einer Datenbank
Zitat:
![]() |
AW: Datensätze speichern in einer Datenbank
Liste der Anhänge anzeigen (Anzahl: 1)
ich hab folgendes Problem, irgentwie schreibt er die datensätze nicht in das Grid, und ich hab keine ahnung voran das liegen könnte :|
|
AW: Datensätze speichern in einer Datenbank
Stehen die Werte denn in der Datenbank? Falls ja, aktualisier einmal das Dataset (Query oder Table).
|
AW: Datensätze speichern in einer Datenbank
ich hab ja werte in die datenbank eingetragen und das mit dem akualisierem bringt nichts ..
|
AW: Datensätze speichern in einer Datenbank
Siehst Du die Werte denn auch, wenn Du mit einem Datenbankbetrachter (ich vermute, bei Deiner AD Architect ist einer dabei) in die DB schaust? Evtl. sind da Transaktionen noch nicht abgeschlossen oder etwas in der Art.
|
AW: Datensätze speichern in einer Datenbank
doch ich sehe die werte im datenbankbetrachter, deswegen versteh ich es nich.
ich muss anscheinden etwas bei der verbindung mit delphi übersehen haben, aber ich finde es nicht, deswegen dachte ich vielleicht findet ein aussenstehender den fehler :| |
AW: Datensätze speichern in einer Datenbank
Moment, siehst Du nur keine Aktualisierungen oder überhaupt keine Daten?
|
AW: Datensätze speichern in einer Datenbank
im programm von ads seh ich die werte, die ich dort eingetragen hábe. Aber im Programm das mit der Datenbank verbunden sein soll, wird in dem grid nichts angezeigt.
|
AW: Datensätze speichern in einer Datenbank
Ach so. Du brauchst ein TDataset (z.B. eine Table oder Query), eine TDataSource und Dein Grid. In der Datasource stellst Du im OI als Dataset Dein Dataset ein und beim Grid unter Datasource Deine Datasource. Anschließend alles auf active setzen, und die Daten sollten im Grid dargestellt werden.
|
AW: Datensätze speichern in einer Datenbank
Liste der Anhänge anzeigen (Anzahl: 1)
Hab den fehler gefunden :)
Nu hab ich aber folgendes Problem: Er soll eigentlich den Datensatz, den man einträgt, wenn man auf neu geht in das grid speichern bzw zu datenbank hinzufügen. |
AW: Datensätze speichern in einer Datenbank
Poste doch einfach den relevanten Quelltext zum Speichern, zumindest ich habe nicht viel Lust, mir jedesmal das ganze Projekt herunterzuladen und darin zu suchen.
|
AW: Datensätze speichern in einer Datenbank
Delphi-Quellcode:
procedure TFormMain.Neu1Click(Sender: TObject); // Beim Klicken auf Neu ober in der Leiste
var FormAdresse : TFormAdresse ; kontaktdaten : tKontaktdaten; begin formAdresse := TFormAdresse.Create( Self ); // Es wird wieder das Formular Adresse erstellt formAdresse.Adresse := tAdresse.Create ; ; if formadresse.ShowModal = mrOK then // Wenn OK geklickt wurde, dann .. begin ShowMessage ( 'Die Werte wurden gespeichert' ); // Wird dieser Text ausgegeben und .. Adressen.Add( FormAdresse.Adresse ) ; // Die eingetragenden Daten werden in der TList Adressen abgespeichert tbAdressen.Insert; tbAdressenCreate; tbAdressen.Post ; end else // Ansonsten.. ShowMessage ( 'Die Aktion wurde abgebrochen' ) ; // wird diese Meldung ausgegeben RefreshList ; // AdresseListBox wird aktualisiert und somit wird der neue Datensatz eingetragen formadresse.Release ; // Gibt den Speicher im Formular Adresse wieder frei end; procedure TFormMain.tbAdressenCreate; begin tbAdressen.FieldByName('ID').AsInteger := adresse.id; tbAdressen.FieldByName('Anrede').AsString := adresse.Anrede; tbAdressen.FieldByName('Nachname').AsString := adresse.Nachname; tbAdressen.FieldByName('Vorname').AsString := adresse.Vorname; tbAdressen.FieldByName('Strasse').AsString := adresse.Strasse; tbAdressen.FieldByName('PLZ').AsInteger := adresse.PLZ; tbAdressen.FieldByName('Ort').AsString := adresse.Ort; end; |
AW: Datensätze speichern in einer Datenbank
Hast Du einmal in tbAdressenCreate (blöder Name übrigens, das klingt eher nach einem Konstruktor) einen Haltepunkt gesetzt und nachgesehen, was an die Felder übergeben wird? An Deiner Stelle würde ich das aber sowieso ganz anders handhaben: eine Methode AddAdresse, innerhalb derer der komplette Code zum Eintragen in die DB steht, inkl. Insert und Post.
|
AW: Datensätze speichern in einer Datenbank
ich hab nachgeschaut, anscheinend ist adresse = nil doch im nebenformular werden die informationen aus den editfeldern in genau diesen variablen gespeichert und das bevor er durch tbAdressen.Insert läuft.
das mit der methode ist eine gute idee. Danke |
AW: Datensätze speichern in einer Datenbank
Naja,
Zitat:
|
AW: Datensätze speichern in einer Datenbank
und wie löse ich nu das problem? :?
ich bin totaler änfanger .. |
AW: Datensätze speichern in einer Datenbank
Schau Dir doch noch einmal das Einstiegstutorial vom Delphi-Treff an. Den Teil mit der Datenbankoberfläche kannst Du ja getrost überspringen und gleich bei TTable weitermachen. Das Prinzip ist ja bei so gut wie allen (SQL-)Datenbanken dasselbe.
|
AW: Datensätze speichern in einer Datenbank
okay danke, dann schau ich mir das mal an :)
|
AW: Datensätze speichern in einer Datenbank
okay hab mir das mal angeschaut, aber mir wirklcih weiterhelfen tut es nicht.
Also unter Neu trägt mein ein neuen Datensatz ein und dieser soll, wenn auf Ok geklickt wird in dem grind eingefügt werden. Doch gibt er mir immer eine fehlermeldung aus, weil (glaub ich) anscheinend in adresse. ... nichts drinsteht, obwohl im nebenformular, der text der editfelder in diese variablen gespeichert wird.
Delphi-Quellcode:
ich hoffe jemand kann mir das anhand des quelltextes erklären :|
procedure TFormMain.Neu1Click(Sender: TObject); // Beim Klicken auf Neu ober in der Leiste
var FormAdresse : TFormAdresse ; kontaktdaten : tKontaktdaten; begin formAdresse := TFormAdresse.Create( Self ); // Es wird wieder das Formular Adresse erstellt formAdresse.Adresse := tAdresse.Create ; ; if formadresse.ShowModal = mrOK then // Wenn OK geklickt wurde, dann .. begin ShowMessage ( 'Die Werte wurden gespeichert' ); // Wird dieser Text ausgegeben und .. //Adressen.Add( FormAdresse.Adresse ) ; // Die eingetragenden Daten werden in der TList Adressen abgespeichert tbAdressen.Insert; tbAdressenCreate; tbAdressen.Post; end else // Ansonsten.. ShowMessage ( 'Die Aktion wurde abgebrochen' ) ; // wird diese Meldung ausgegeben // RefreshList ; // AdresseListBox wird aktualisiert und somit wird der neue Datensatz eingetragen formadresse.Release ; // Gibt den Speicher im Formular Adresse wieder frei end; procedure TFormMain.tbAdressenCreate; begin tbAdressen.FieldByName('ID').AsInteger := adresse.ID; tbAdressen.FieldByName('Anrede').AsString := adresse.Anrede; tbAdressen.FieldByName('Nachname').AsString := adresse.Nachname; tbAdressen.FieldByName('Vorname').AsString := adresse.Vorname; tbAdressen.FieldByName('Strasse').AsString := adresse.Strasse; tbAdressen.FieldByName('PLZ').AsInteger := adresse.PLZ; tbAdressen.FieldByName('Ort').AsString := adresse.Ort; end; danke schonmal |
AW: Datensätze speichern in einer Datenbank
Hab ich doch schon. Wenn Du Deinen eigenen Quelltext nicht mehr verstehst, wie sollen wir dann helfen? Du könntest aber ganz auf die Klasse TAdresse verzichten und das Speichern gleich im Unterformular erledigen.
|
AW: Datensätze speichern in einer Datenbank
ja ich habe wirklich total den überblick verloren :(
bin vor 2 wochen damit angefangen und in der zeit wurde mir soviel gezeigt und umgeändert, das ich mittlerweile kaum mehr was verstehe .. :| |
AW: Datensätze speichern in einer Datenbank
Du sprichst FormMain.Adressen in tbAdressenCreate an meinst aber eigentlich formAdresse.Adresse.
Ich würde das ganze sauber neu aufsetzen.... |
AW: Datensätze speichern in einer Datenbank
Dann erstell Dir zum Üben doch einfach ein neues Projekt. In dem nimmst Du ein Datenmodul ('Datei - Neu - Datenmodul') und packst da alle nicht-visuellen DB-Komponenten drauf (Table, Datasource, Query, etc.). Wenn Du die Unit dieses Datenmoduls in die uses-Klausel Deiner Formular-Units aufnimmst kannst Du die Datasource-Zuweisung für Grids usw. direkt im Objektinspektor vornehmen. So, die Formulare greifen dann alle auf die Datasets auf dem Datenmodul zu und zeigen die Daten an bzw. modifizieren sie. Wenn man dann auch noch datensensitive Controls verwendet (DBEdit z.B.) kann man voll funktionsfähige Programme zusammenklicken, ohne auch nur eine Zeile Quellcode schreiben zu müssen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:40 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