![]() |
Datenbank: MySQL • Version: 5.5.31 • Zugriff über: keine Ahnung:/
Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe folgendes vor: In diese Maske[Anhang] will ich meine Kunden eintragen, die eingegebenen Daten sollen dann auf einen Server bei strato gespeichert und wieder abgerufen werden können. Eine Verbindung bekomme ich noch hin nur wie speichere ich die einzelnen DBEdit-Felder auf die Datenbank jedes einzelnen Kundens und wie kann ich diese dann wieder abrufen? Ich hoffe es gibt hier jemand der mir helfen kann. Ich freue mich auf jede Antwort. Bei Fragen stehe ich auch gerne zur Verfügung :) Schonmal vielen vielen Dank. P.S. Ich programmiere in Delphi 7 Enterprise |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Zwei Fragen :
|
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Ich baue die Verbindung wie folgt auf:
procedure TForm1.Button1Click(Sender: TObject); begin FMysql.Host := 'rdbms.strato.de'; FMysql.user :='Mein_Datenbankname'; FMysql.password := 'Mein_Datenbankpasswort'; FMysql.UnixSocket := ''; FMysql.Db := 'kunden'; FMysql.UseNamedPipe := false; FMysql.UseSSL := false; FMysql.Compress := true; FMysql.TrySockets := false; if FMysql.Connect then ShowMessage('Verbindung aufgebaut') else ShowMessage('Verbindung konnte nicht hergestellt werden!') end; |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Zitat:
|
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Zitat:
@JaniJPK: Wenn Du jetzt noch eine Query-Komponente nimmst, kannst Du mit SQL-Befehlen die Daten abrufen und in die Datenbank schreiben. |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Zitat:
|
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
@zeras und @RWarnecke,
wenn ihr der Meinung seit, dass ich das nicht über meine Webspace machen kann ok. Es gibt aber doch Server die reine MySQl Datenbanken anbieten also müsste ich doch dann darüber eine Verbindung herstellen können. Aber wie bekomme ich die Daten aus den Edit-Feldern in eine Datenbank oder wie kann ich aus einer Datenbank auf diese Daten zugreifen und in meinen Edit-Feldern ausgeben?! Alternative Lösung? Kann ich dann meine Felder auslesen in eine lokale Datenbank speichern. Diese Datenbank in einer Datei auf einen Server hochladen? Schon einmal vielen Dank für die ganzen Antworten :) Danke |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Jetzt mal ganz unabhängig davon, welche Datenbank Du später benutzt. Wie ich schon in meinem letzten Beitrag geschrieben habe, brauchst Du dazu entsprechende Komponenten (z.B. ADO, Zeos, IBX). Jede dieser Komponentensammlungen hat eine Komponente, womit Du die Verbindung zur Datenbank herstellst. Dann gibt es da noch eine Query oder Table Komponente. Mit diesen beiden Komponenten kannst Du die Daten aus einer Datenbank abfragen oder auch Daten in die Datenbank schreiben oder aktualisieren. Ich empfehle Dir, ein paar Tutorials zu Datenbanken und dessen Komponenten durchzuarbeiten und klein anzufangen und nicht gleich versuchen auf einen Server bei Strato zuzugreifen.
![]() ![]() ![]() Und wenn Du jetzt noch in der Tutorialssparte hier in der DP suchst, dann findest Du noch mehr Anleitungen. Desweiteren lege ich Dir dann noch die Scriptsprache SQL ans Herz. Mit SQL steht und fällt alles was Datenbanken angeht. Zitat:
|
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Wobei für den genannten Zweck einfache .php Dateien, die auf dem Webspace liegen und das ganz ohne Delphiprogramm machen, sehr viel einfacher wären.
Zudem ist das auch sicherer, wenn du deine DB nicht direkt via PHP Tunnel von außen erreichbar machst. Gerade bei Kundendaten muss man da sehr aufpassen, das Gesetz sieht da Sicherungsmaßnahmen vor, die ich bei deinem derzeitigen Ansatz noch nicht sehe. |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Ich bedanke mich schon einmal für die vielen Antworten.
Ich werde jetzt das Tutorial durchgehen. Mal sehen was dabei raus kommt ;) |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Zitat:
![]() Ja, ich halte da für eine der besten Lösungen für das hier vorliegende Problem: Von außen nicht zugängliche Datenbanken bei Webhostern. Man sollte sich allerdings gut überlegen, wie man soetwas absichert (.htaccess) und ähnliches. Denn machen wir uns nix vor, man baut sich damit ein Einfallstor. |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Liste der Anhänge anzeigen (Anzahl: 1)
Hi.
Also ich habe an meinem Programm weitergeschrieben: Als Anhang die Oberfläche und hier der Quelltext:
Code:
Mein Problem: Meine Buttons funktionieren nicht. Wenn ich einen neuenn Kunden in der Datenbank anlegen will stürzt das Programm ab. Und in Delphi bekomme ich eine Fehlermeldung.
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); 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; end. Kann mir jemand netter Weise bei diesem Problem helfen? Ich bedanke mich schon einmal im Vorraus für die Antworten. |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Zitat:
Edit: Zitat:
|
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Hallo,
die Fehlermeldung passiert wenn ich auf den Button Kunden speichern drücke [Table1.Append; setButtons(2)]. Die Fehlermeldung 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.> Ich verstehe es einfach nicht. Ich habe ein Beispiel-Programm und da funktioniert alles... |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Zitat:
Könnte es sein, daß die DB in deinem Beispielprogramm lokal ist? Nur nebenbei, warum werden eigentlich immer diese DBxxx Komponenten genutzt? (mit einfachen SQL-Befehlen wäre unter anderem das Debuggen viel einfacher) Gruß K-H |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Liste der Anhänge anzeigen (Anzahl: 2)
@p80286
Das Programm unterscheidet sich mit dem Beispielprogramm nur, dass es mehr DBEdit-Komponenten hat. Ich öffne mit dem Beispielprogramm die gleiche lokale Datei, die ich auch in meinem Programm verwende. Ich bin Newbie. Deswegen verwende ich die DBxxx-Komponenten. Wenn du mir mei Programm schreibst dass es auch ohne funktioniert habe ich kein Problem damit :D ;) In dem Ordner PB_01 ist auch die Datei der Datenbank. Der Pfad muss noch angepasst werden. Das Programm aus dem Ordner PB_01 sowie die Datenbank-Datei kommen aus dem Buch "Borland Delphi 7-Grundlagen, Profiwissen, Kochbuch" von Doberenz und Gewinnus (Verlag: Hanser). |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Wenn du Kundendaten über das Internet überträgst, dann solltest du die Verbindung oder die Daten unbedingt verschlüsselt übertragen.
In der DB-Verbindung kannst du das u.a. mit
Delphi-Quellcode:
erreichen.
FMysql.UseSSL := true;
Der Datenschutzbeauftragte wird es danken. |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
@ generic
Vielen Dank für diesen Tipp. Werde ich nachher gleich einbauen :) |
AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
Zitat:
Zitat:
Delphi-Quellcode:
Für die ersten drei Schritte mögen die DB-Komponenten ja ganz schön sein, später kommt man meist zurück zu den spartanischen Ansätzen.
(Und vor allem, daß es immer wieder Ärger mid DBxxx gibt)
Zitat:
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 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