Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank (https://www.delphipraxis.net/175569-newbie-sucht-hilfe-speicherung-und-abruf-und-von-einer-externen-datenbank.html)

Codehunter 3. Jul 2013 07:35

AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
 
Zitat:

Zitat von RWarnecke (Beitrag 1220340)
[...] es gab hier mal in der DP ein Projekt, welches auch einen PHP-Tunnel zu einer MySQL - Datenbank aufbauen konnte. Habe das Projekt allerdings aus den Augen verloren, musste in der DP mal nach suchen.

Ich denke du meinst das hier: http://www.delphipraxis.net/148076-m...mysql-dll.html

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.

JaniJPK 6. Jul 2013 15:36

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:
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.
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.


Kann mir jemand netter Weise bei diesem Problem helfen?


Ich bedanke mich schon einmal im Vorraus für die Antworten.

RWarnecke 6. Jul 2013 18:20

AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
 
Zitat:

Zitat von JaniJPK (Beitrag 1220934)
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.

Was für eine Fehlermeldung ? :glaskugel: Was besagt diese Fehlermeldung ? Versuche mal Dein Programm zu debuggen mit F7 oder F8 um die Stelle herauszufinden, wo Dein Programm aussteigt.

Edit:
Zitat:

Zitat von Codehunter (Beitrag 1220511)
Zitat:

Zitat von RWarnecke (Beitrag 1220340)
[...] es gab hier mal in der DP ein Projekt, welches auch einen PHP-Tunnel zu einer MySQL - Datenbank aufbauen konnte. Habe das Projekt allerdings aus den Augen verloren, musste in der DP mal nach suchen.

Ich denke du meinst das hier: http://www.delphipraxis.net/148076-m...mysql-dll.html

Ja, genau das Projekt meinte ich.

JaniJPK 9. Jul 2013 08:38

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...

p80286 9. Jul 2013 10:39

AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
 
Zitat:

Zitat von JaniJPK (Beitrag 1221165)

Ich verstehe es einfach nicht. Ich habe ein Beispiel-Programm und da funktioniert alles...

Und wie unterscheidet sich das Beispielprogramm von dem fehlerhaften?
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

JaniJPK 9. Jul 2013 11:46

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).

generic 9. Jul 2013 12:24

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:
FMysql.UseSSL := true;
erreichen.

Der Datenschutzbeauftragte wird es danken.

JaniJPK 9. Jul 2013 12:29

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 :)

p80286 9. Jul 2013 12:39

AW: Newbie sucht Hilfe: Speicherung und Abruf in und von einer externen Datenbank
 
Zitat:

Zitat von JaniJPK (Beitrag 1221228)
@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.

Könnte es Sein, daß diese Komponenten dann einmal "synchronisiert" werden müssen?

Zitat:

Zitat von JaniJPK (Beitrag 1221228)
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 ;)

Das mach mal schön selber, Beispiele dafür findest du hier im Dutzend billiger.
Delphi-Quellcode:
(Und vor allem, daß es immer wieder Ärger mid DBxxx gibt)
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.

Zitat:

Zitat von JaniJPK (Beitrag 1221228)
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).

Ich halte eigentlich viel von den beiden, meist beschreiben Sie auch die Stolperstellen und warum Sie es so machen wie sie es machen.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz