Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Newbie braucht Hilfe mit Datenbanken (https://www.delphipraxis.net/176818-newbie-braucht-hilfe-mit-datenbanken.html)

JaniJPK 28. Sep 2013 16:27

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:
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.
In die Komponente Table1: TTable habe ich bei DataBaseName meinen Dateipfad zu meiner Datei "Kunden.db" angegeben. Und bei TableName "Kunden.db".

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

vagtler 28. Sep 2013 16:32

AW: Newbie braucht Hilfe mit Datenbanken
 
Zitat:

Zitat von JaniJPK (Beitrag 1230202)
[...] Trotz all dem kommt eine Fehlermeldung. [...]

Und die ist so geheim, dass Du sie uns nicht mitteilen darfst?...

JaniJPK 28. Sep 2013 16:43

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.

Perlsau 28. Sep 2013 17:40

AW: Newbie braucht Hilfe mit Datenbanken
 
Zitat:

Zitat von JaniJPK (Beitrag 1230204)
Meldung: 'Table1: Operation bei geschlossener Datenmenge nicht ausführbar'.

Und was meinst du nun, was diese Fehlermeldung besagt? Ich würde mal darauf tippen, daß deine Datenmenge nicht geöffnet ist ... oder siehst du das anders?

Furtbichler 28. Sep 2013 19:17

AW: Newbie braucht Hilfe mit Datenbanken
 
Zitat:

Zitat von Perlsau (Beitrag 1230208)
Ich würde mal darauf tippen, daß deine Datenmenge nicht geöffnet ist ... oder siehst du das anders?

Also ich würde sagen, sie ist geschlossen! :warn:

:wall:

Valle 28. Sep 2013 19:25

AW: Newbie braucht Hilfe mit Datenbanken
 
Mal als Tipp an meine zwei Vorposter. Schaut mal in der Zeile über den Beitrag:

Zitat:

Datenbank: sry keine Ahnung? • Version: ? • Zugriff über: sry leine Ahnung :/
Was könntet ihr daraus schließen?

Versetzt euch doch in die Lage von jemandem, der solchen Code schreibt, wie ihr ihn dort sehen könnt. :cyclops:

Liebe Grüße,
Valentin

JaniJPK 28. Sep 2013 19:34

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

Lemmy 28. Sep 2013 20:32

AW: Newbie braucht Hilfe mit Datenbanken
 
Zitat:

Zitat von JaniJPK (Beitrag 1230217)
Und welchen Tipp habt ihr für mich?

http://www.delphi-treff.de/tutorials...eg/einleitung/


und falls Du nur einen Tipp willst:

in TForm2.FormCreate(Sender: TObject); ein Table1.open; einfügen


Zitat:

Zitat von JaniJPK (Beitrag 1230217)
Es ist mein erstes mal wo ich an Datenbankprogrammierung gehe. UNd auf YouTube oder so findet man zu Delphi halt nicht viel:(

nicht schlimm mit was neuem zu beginnen, aber auf youtube Hilfe zu suchen? Aber vielleicht bin ich einfach schon zu alt...

JaniJPK 28. Sep 2013 20:57

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.

scrat1979 28. Sep 2013 22:31

AW: Newbie braucht Hilfe mit Datenbanken
 
Zitat:

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

Steht doch schon in der Fehlermeldung drin :(

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.
Seite 1 von 3  1 23      

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