![]() |
Datenbank ohne BDE für delphi 5.0
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] |
ganz neue Auflage
Delphi-Quellcode:
klappt das mit dem .\..\Pfad?
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 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] |
Re: Datenbank ohne BDE für delphi 5.0
Hallo,
erstmal herzlich Willkommen. Bitte benutze in Zukunft die Delphi-Code-Tags. |
Re: Datenbank ohne BDE für delphi 5.0
Zitat:
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. |
Re: Datenbank ohne BDE für delphi 5.0
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. |
Re: Datenbank ohne BDE für delphi 5.0
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?
|
Re: Datenbank ohne BDE für delphi 5.0
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.... |
Re: Datenbank ohne BDE für delphi 5.0
Delphi-Quellcode:
ich kapier des mit code libary ned
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. wie mach ich jetzt das laden, und wie kann ich das bisherige mit dynamischen arrays machen? |
Re: Datenbank ohne BDE für delphi 5.0
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: ![]() Falls Englisch kein Problem eine hervorragende Artikelserie gibt es hier: ![]() |
Re: Datenbank ohne BDE für delphi 5.0
hmm schade, ich habe aber dieses plugin ned in der delphi 5 standart version
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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 by Thomas Breitkreuz