AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbank ohne BDE für delphi 5.0
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbank ohne BDE für delphi 5.0

Ein Thema von dazon · begonnen am 11. Nov 2003 · letzter Beitrag vom 14. Nov 2003
Antwort Antwort
Seite 1 von 2  1 2      
dazon

Registriert seit: 11. Nov 2003
6 Beiträge
 
#1

Datenbank ohne BDE für delphi 5.0

  Alt 11. Nov 2003, 00:20
ich versuche seid gut 3 Tagen eine Datenbank per record zu erstellen, leider ohne grossen erfolg. Zwar habe ich in diesem forum schon eine tolle source gefunden, leider ist die aber für delphi 7.0, was ich leider nicht besitze. Meine delphi kenntnisse sind sehr gering, darum ist es mir peinlich meine bisherige source in dieses forum zu posten, ich tue es aber trotzdem, vielleicht hilft mir ja jemand.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    ename: TEdit;
    evorname: TEdit;
    estrasse: TEdit;
    enr: TEdit;
    etelefonnummer: TEdit;
    ewohnort: TEdit;
    eplz: TEdit;
    ehandy: TEdit;
    eemail: TEdit;
    eschule: TEdit;
    egeburtsdatum: TEdit;
    ehomepage: TEdit;
    estand: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
 ...

 ...
Type
  tperson = record
  name : String [30];
  vorname : string [30];
  strasse : String [30];
   {usw}
  end;

 var
  Form1: TForm1;
  person : tperson;
  adresse: array[1..100] of tperson;
  Datei : file of tperson;
  
procedure TForm1.Button1Click(Sender: TObject); // übertragung von edit in array
var i : Integer;
begin
 assignfile(datei, 'Datenbank.dat');
 rewrite(datei);
 for i := 1 to 100 do begin
  adresse[i].name := ename.text;
  adresse[i].vorname := evorname.text;
  adresse[i].strasse := estrasse.text;
  {usw}
  Write(datei, adresse[i]); // speichern der array daten in datei
                       end;
end;

das ist er einmal die wichtige prozedur, mit der ich Probleme habe. Es soll den array in eine externe datei speichern, was er aber glaube ich nicht richtig tut, denn wenn ich es wieder lade, sind alle textfelder leer. Vielleicht speichert er auch nur den letzten array.... ich weiss es nicht so recht.
Bitte versucht mit zu helfen, egal wie......

[edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit]
  Mit Zitat antworten Zitat
dazon

Registriert seit: 11. Nov 2003
6 Beiträge
 
#2

ganz neue Auflage

  Alt 11. Nov 2003, 01:46
Delphi-Quellcode:
TYPE
TAdressRecord = RECORD
Name : STRING[40];
Strasse : STRING[40];
PLZ : STRING[5];
Geb : STRING[10];
END;

var //Global
  Form1: TForm1;

implementation

{$R *.DFM}




FUNCTION ReadMyDataset(n: LongInt): BOOLEAN; // Lesen von Datensätzen
VAR
MyDatabase : File OF TAdressRecord;
DBError : BOOLEAN;
 BEGIN
  Assign(MyDatabase, '.\..\MYDATABASE.DAT');
  Reset(MyDatabase);
  {$I-}            //nen richtigen durchblick hab ich von seek noch ned....
   Seek(MyDatabase, n);
   IF IOResult = 0 THEN
   DBError := FALSE
   ELSE
       DBError := TRUE;
       {$I+}
       IF NOT DBError THEN BEGIN
{ der Datensatz kann nun gelesen und verarbeitet werden}
       ...
       END;
  Close(MyDatabase);
  ReadMyDataset := DBerror;
END;
{Die Funktion UpdateMyDataset geht zum Datensatz n und bearbeitet
diesen.}


FUNCTION UpdateMyDataset(n : LongInt): BOOLEAN; // Aktualisierung von Datensätzen
VAR
  MyDatabase: File OF TAdressRecord;
  DBError : BOOLEAN;
  BEGIN
    Assign(MyDatabase, '.\..\MYDATABASE.DAT');
    Reset(MyDatabase);
    {$I-}
    Seek(MyDatabase,n);
    IF IOResult = 0 THEN
    DBError := FALSE
    ELSE
    DBError := TRUE;
    {$I+}
    IF NOT DBError THEN BEGIN
{ der Datensatz kann nun überschrieben werden }
    ...
 END;
Close(MyDatabase);
ReadMyDataset := DBError;
END;


FUNCTION InsertNewDataset: BOOLEAN; // Hinzufügen von neuen Datensätzen
VAR
MyDatabase : File OF TAdressRecord;
DBError : BOOLEAN;
BEGIN
   Assign(MyDatabase, '.\..\MYDATABASE.DAT');
   Reset(MyDatabase);
   {$I-}
   Seek(MyDatabase, FileSize(MyDatabase));
   IF IOResult = 0 THEN DBError := FALSE ELSE DBError := TRUE;
   {$I+}
   IF NOT DBError THEN BEGIN
{der Datensatz kann nun angefügt werden}
   ...
END;
Close(MyDatabase);
ReadMyDataset := DBError;
END;


end. //Ende des Programms
klappt das mit dem .\..\Pfad?
was muss ich jetzt bei den gekenntzeichneten ... Lücken einfüllen (ich mein wie mach ich des mit editfeldern ohne ....., ach einfach ma helfen

[edit=r_kerber]Delphi-Tags eingefügt. Mfg, r_kerber[/edit]
  Mit Zitat antworten Zitat
Marco Haffner
(Gast)

n/a Beiträge
 
#3

Re: Datenbank ohne BDE für delphi 5.0

  Alt 11. Nov 2003, 03:20
Hallo,
erstmal herzlich Willkommen.

Bitte benutze in Zukunft die Delphi-Code-Tags.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Datenbank ohne BDE für delphi 5.0

  Alt 11. Nov 2003, 03:25
Zitat von dazon:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject); // übertragung von edit in array
var i : Integer;
begin
 assignfile(datei, 'Datenbank.dat');
 rewrite(datei);
 for i := 1 to 100 do begin
  adresse[i].name := ename.text;
  adresse[i].vorname := evorname.text;
  adresse[i].strasse := estrasse.text;
  {usw}
  Write(datei, adresse[i]); // speichern der array daten in datei
                       end;
end;
Sei gegrüßt als Neuling. 8) Erstens fehlt nach der for-schleife ein close, also ist nicht die ganze Datei gespeichert, oder gar nichts. Und durch das rewrite machst du die Datei beim Start sofort wieder leer, die wird dadurch nämlich einfach überschrieben. Das ist der Hauptfehler.

P.S.: Ah, da ist noch ein wichtiger Kommentar durchgerutscht, der Dir sicherlich nicht hilft. Gehe in Deinem Text auf "Delphi-Source", füge dann den Code ein und dann wieder auf "Delphi-Source*". Danach schreibst Du normal weiter.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#5

Re: Datenbank ohne BDE für delphi 5.0

  Alt 11. Nov 2003, 07:09
Hallo dazon,

zunächst erst mal herzlich willkommen in der Delphi-Praxis. Benutze künfzig doch die Delphi-Tags. Ich habe diese in Deine beiden Postings schon mal eingefügt. Wie Du siehst ist der Quellcode so besser lesbar.
  Mit Zitat antworten Zitat
dazon

Registriert seit: 11. Nov 2003
6 Beiträge
 
#6

Re: Datenbank ohne BDE für delphi 5.0

  Alt 11. Nov 2003, 13:55
Danke für die hilfe, ich habe eine ganz neue idee gehabt (als man mir erklärte, wie man mit seek arbeitet). Sind da irgendwelche fehler drin??? und kann ich bei den gekenntzeichneten ... leerpassagen mit editfeldern = zuweisung arbeiten?
  Mit Zitat antworten Zitat
dazon

Registriert seit: 11. Nov 2003
6 Beiträge
 
#7

Re: Datenbank ohne BDE für delphi 5.0

  Alt 11. Nov 2003, 14:12
also wie genau mach ich jetzt die ein und ausgabe?


Hat zufällig jemand einen record-datenbank programm ohne BDE aufm rechner, dass ich mir ma anschauen kann wie derjenige es gemacht hat? Ich mach immer andere logische fehler....
  Mit Zitat antworten Zitat
dazon

Registriert seit: 11. Nov 2003
6 Beiträge
 
#8

Re: Datenbank ohne BDE für delphi 5.0

  Alt 14. Nov 2003, 11:06
Delphi-Quellcode:
    Type
     tperson = record
     vorname:string[30];
     name:string[30];
     strasse:string[50];
     hausnummer:string[3];
     plz:string[5];
     ort:string[30];
     //zeiger: integer;

  end;



var
  Form1: TForm1;
  person:tperson;
  adresse:Array[1..100]of tperson;
  Datei: File of tperson;
  i,w: integer;

implementation

{$R *.DFM}



procedure TForm1.Felder_leerenClick(Sender: TObject);
begin
edvorname.text:='';
edname.text:='';
edstrasse.text:='';
edhausnummer.text:='';
edplz.text:='';
edort.text:='';
end;

procedure TForm1.FormCreate(Sender: TObject);
var s: integer;
begin
  s:= 1;
  assignfile(Datei,'Adressen.dat');
  i:= 1;
  reset(Datei);
  while not EoF(Datei) do
    begin
      read(Datei,adresse[s]);
      s:= s+1;
    end;
  w:=1;
end;

procedure TForm1.SpeichernClick(Sender: TObject);
begin
  with person do begin
  adresse[i].vorname := edvorname.text;
  adresse[i].name := edname.text;
  adresse[i].strasse := edstrasse.text;
  adresse[i].hausnummer := edhausnummer.text;
  adresse[i].plz := edplz.text;
  adresse[i].ort := edort.text;
  end;
  write(Datei,adresse[i]);
  i:=i+1;


end;


procedure TForm1.DB_verlassenClick(Sender: TObject);
begin
closefile(datei);
close;
end;


end.
ich kapier des mit code libary ned


wie mach ich jetzt das laden, und wie kann ich das bisherige mit dynamischen arrays machen?
  Mit Zitat antworten Zitat
iamjoosy

Registriert seit: 12. Nov 2003
53 Beiträge
 
#9

Re: Datenbank ohne BDE für delphi 5.0

  Alt 14. Nov 2003, 11:52
Hi, benutze besser keine Records, habe das auch schon gemacht, und kann nur dringend abraten. Verwende besser ein TclientDataset und benutze es mit lokalen files (sogenannter MyBase Ansatz).

Eine Einführung findest du hier: Mybase Einstieg

Falls Englisch kein Problem eine hervorragende Artikelserie gibt es hier:Cary Jensen
  Mit Zitat antworten Zitat
dazon

Registriert seit: 11. Nov 2003
6 Beiträge
 
#10

Re: Datenbank ohne BDE für delphi 5.0

  Alt 14. Nov 2003, 18:31
hmm schade, ich habe aber dieses plugin ned in der delphi 5 standart version
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr.
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