![]() |
Datenbank: Noch keine • Version: ? • Zugriff über: ?
Datenbank realisieren, aber ohne Server und Treiber ?
Ich möchte gern eine Datenbank realisieren. Aber ohne Server und Treiber direkt das DBfile erzeugen/bearbeiten. Ich habe leider wenig Kenntnisse von der Datenbankprogrammierung. Was brauche ich dazu? Welche Komponenten kann man benutzen? Kann mir Einer von Euch mal bitte helfen? Achso, dass ganze sollte auch auf WIN95 laufen
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
du willst also .db / .dbf dateien erzeugen, ohne BDE oder irgendeinen anderen treiber, und die .db/.dbf oder was, soll für andere programme die dieses (öhm paradox?) format unterstützen?
ooooooder ginge es auch wenn du dir deine daten in sequentiellen dateien oder so speicherst? ~dummfrag~ |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
@Smart Schau dir mal Absolute Database an. André |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
ich seh schon ... vergiss die frage mit den files/sequentiellen krams....
![]() |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
Das zieh ich jeder Sequenziellen Datei vor! Naja kommt auch wieder auf die größe der Datenmengen an... Greetz Boombuler |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Ich hatte mal so Komponenten für Delphi2, die erzeugten DB-Dateien. Leider bietet der Hersteller sie nicht mehr an. Delphi2 habe ich leider nicht mehr.
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
hmm ich schreib dir erstmaln beispiel her wie ichs >dann< machen würde ...
Delphi-Quellcode:
p00h - ich hoffs iss soweit verständlich :)
uses
Classes, // TStream Contnrs; // TObjectList type TDatensatz = class private FSpalte1: string; // oder machst aus allem nen string, je nachdem wie deine datensaetze aufgebaut werden sollen FSpalte2: integer; FSpalte3: double; public procedure LoadFromStream(Stream: TStream); procedure SaveToStream(Stream: TStream); property Spalte1: string read FSpalte1 write FSpalte1; // oder string read FSpalte1 write SetSpalte1; - dann müsstest dir noch private procedure SetSpalte1(const Value: string); reinbasteln // SpalteX... end; TDatensaetze = class(TObjectList) private function GetItems(Index: integer): TDatensatz; procedure SetItems(Index: integer; const Value: TDatensatz); public procedure LoadFromFile(const FileName: string); procedure LoadFromStream(Stream: TStream); procedure SaveToFile(const FileName: string); procedure SaveToStream(Stream: TStream); property Items[Index: integer]: TDatensatz read GetItems write SetItems; default; end; implementation procedure WriteStringToStream(Stream: TStream; const sText: string); begin Stream.Write(Length(sText), 4); // 4 = SizeOf(Integer); Stream.Write(Pointer(sText)^, Length(sText)); // oder Stream.Write(sText[1], Length(sText)); end; procedure ReadStringFromStream(Stream: TStream; var sText: string); var iLength: integer; begin Stream.Read(iLength, 4); SetLength(sText, iLength); Stream.Read(Pointer(sText)^, iLength); // oder wieder Stream.Read(sText[1], iLength); end; { TDatensatz } procedure TDatensatz.LoadFromStream(Stream: TStream); begin WriteStringToStream(Stream, FSpalte1); Stream.Write(FSpalte2, 4); // 4 = SizeOf(Integer) Stream.Write(FSpalte3, 8); // 8 = SizeOf(Double) end; procedure TDatensatz.SaveToStream(Stream: TStream); begin ReadStringFromStream(Stream, FSpalte1); Stream.Read(FSpalte2, 4); Stream.Read(FSpalte3, 8); end; { TDatensaetze } function TDatensaetze.GetItems(Index: integer): TDatensatz; begin if (Index > -1) and (Index < Count) then Result := TDatensatz(inherited Items[Index]) else Result := nil; end; procedure TDatensaetze.LoadFromFile(const FileName: string); var xFS: TFileStream; begin if not FileExists(FileName) then Exit; xFS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone); try LoadFromStream(xFS); finally FreeAndNil(xFS); end; end; procedure TDatensaetze.LoadFromStream(Stream: TStream); var iCount: integer; iIndex: integer; xDatensatz: TDatensatz; begin Stream.Read(iCount, 4); for iIndex := 0 to iCount - 1 do begin xDatensatz := TDatensatz.Create; xDatensatz.LoadFromStream(Stream); Add(xDatensatz); end; end; procedure TDatensaetze.SaveToFile(const FileName: string); var xFS: TFileStream; begin xFS := TFileStream.Create(FileName, fmCreate); try SaveToStream(xFS); finally FreeAndNil(xFS); end; end; procedure TDatensaetze.SaveToStream(Stream: TStream); var iIndex: integer; begin Stream.Write(Count, 4); // Count = Self.Count for iIndex := 0 to Count - 1 do Items[iIndex].SaveToStream(Stream); end; procedure TDatensaetze.SetItems(Index: integer; const Value: TDatensatz); begin if (Index > -1) and (Index < Count) then Items[Index] := Value; end; |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Hallo smart,
Zitat:
Sind der Verzicht auf Treiber und Server Kundenvorgaben oder deine eigenen? Wie sieht das Datenmodell aus? Wird das eine Einplatz- oder Mehrplatz-Anwendung? Welche Datenmengen werden bewegt? Lokaler Zugriff oder über Netzwerk? Nutzungsprofil? marabu |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
@barf00s, vielen Dank. Ich teste es gerade. Der Code ansich läuft. |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Hallo smart,
guck dir mal die [cl]dpCollection[/dp] an. Das sollte (mehr oder weniger) das machen, was du willst ;) Greetz alcaeus |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
:)
ja solang der code funktioniert - hab das einfach so in den antworteditor reingetippst |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
Grüße vom marabu |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
diese absolute database isja nichmal 4free - selbst in der personal version wird'n nagscreen gezeigt ^^
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
hast du dir mal mySQL-embedded angeschaut?
das ist der mySQL-server als include-files. keinen server, keinen treiber, keine lizenz und doch vollen zugriff auf eine mySQL-datenbenk. gibt auch schon verschiedene ansätze für delphi mit mysql-embedded. einfach mal suchen... |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
laut deren page schon
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
von der Hompage In multi-user mode (file-server), nag screen is shown outside IDE. Der nag screeen kommt nicht im singe-user mode. |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
stimmt schon -
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Gibts doch einen Haken :)
Ich find aber auch nix über "Click here for registration to get a key" |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
Dann bekommst du eine Mail mit dem Code. Du gibst beim Setup, den Namen, die Email und den Key ein und schon gehts. ANdré |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Vielleicht ist auch
![]() |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Ja, wie erzeuge ich ein DBFile?
Delphi-Quellcode:
Geht nicht. Aber ich habe wenig Plan von Datenbankprogrammierung.
procedure TForm1.Button1Click(Sender: TObject);
begin ABSDatabase1.DatabaseFileName := 'D:\Test'; ABSDatabase1.DatabaseName := 'Test'; ABSDatabase1.Create; end; |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
Dann legst du den Namen fest:
Delphi-Quellcode:
Und nun hast du mit deinem Programm die DB geöffnet und kannst Daten mit einer Query oder Table-komponete abfragen oder ändern.
ABSDatabase1.DatabaseFileName := 'D:\Test.ABS';
ABSDatabase1.Open; André |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Als Tip für den Anfang. Im Verzeichniss \AbsoluteDataBase\Utils\Bin\ ist das Programm DBManager.exe damit kannst Du schon einmal eine Datenbank erzeugen. Das Programm liegt sogar als Delphi-Source dabei. [Edit] Ich habe jetzt mal ein ganz einfaches Demo angehängt. |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Ja, klappt wunderbar. Habt vielen Dank für Geduld und Mühe. Habe nicht gewusst, dass es so einfach ist. Jetzt werde ich zunächst einmal Datenbanken schreiben um zu sehen, was alles möglich ist. ;-)
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
wenn du Absolute Database installierst, solltest du einen Ordner Demos finden, da gibts genug Beispiele. Schau einfach mal nach ;-) André |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
André |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Jetzt habe ich es geschnallt. Lohnt es sich eigentlich eine Lizenz zu kaufen? FireBird habe ich auch getestet, bzw. wollte ich testen. Habe es aber nicht installiert bekommen.
|
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
Die Frage ist also: Möchtest DU die ABS-DB verwenden oder nicht. :stupid: |
Re: Datenbank realisieren, aber ohne Server und Treiber ?
Zitat:
André |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 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