Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank realisieren, aber ohne Server und Treiber ? (https://www.delphipraxis.net/46839-datenbank-realisieren-aber-ohne-server-und-treiber.html)

smart 1. Jun 2005 12:36

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

barf00s 1. Jun 2005 12:42

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~

MagicAndre1981 1. Jun 2005 12:45

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von barf00s
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~

Du meinst Typisierte Dateien, oder?

@Smart

Schau dir mal Absolute Database an.

André

barf00s 1. Jun 2005 12:46

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
ich seh schon ... vergiss die frage mit den files/sequentiellen krams....

FireBird ist wohl sone datenbank wie du vllt suchst.

MagicAndre1981 1. Jun 2005 12:48

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von barf00s
ich seh schon ... vergiss die frage mit den files/sequentiellen krams....

FireBird ist wohl sone datenbank wie du vllt suchst.

Der FB braucht aber (auch) als Embedded eine Dll.

smart 1. Jun 2005 13:02

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von barf00s
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~

Das geht auch.

Boombuler 1. Jun 2005 13:09

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von MagicAndre1981
Zitat:

Zitat von barf00s
ich seh schon ... vergiss die frage mit den files/sequentiellen krams....

FireBird ist wohl sone datenbank wie du vllt suchst.

Der FB braucht aber (auch) als Embedded eine Dll.

Ich benutz auch teilweise den Embeddes Server von FB und ich kann nur sagen TOP!
Das zieh ich jeder Sequenziellen Datei vor! Naja kommt auch wieder auf die größe der Datenmengen an...

Greetz
Boombuler

MagicAndre1981 1. Jun 2005 13:13

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von Boombuler
Zitat:

Zitat von MagicAndre1981
Zitat:

Zitat von barf00s
ich seh schon ... vergiss die frage mit den files/sequentiellen krams....

FireBird ist wohl sone datenbank wie du vllt suchst.

Der FB braucht aber (auch) als Embedded eine Dll.

Ich benutz auch teilweise den Embeddes Server von FB und ich kann nur sagen TOP!
Das zieh ich jeder Sequenziellen Datei vor! Naja kommt auch wieder auf die größe der Datenmengen an...

Greetz
Boombuler

FireBird ist ja auch gut, aber smart will keinen Treiber (DLL) haben. Da dürfte Absolute DataBase passen, da alles was zum Zugriff gebraucht wird, in die Exe mit eingebunden wird.

smart 1. Jun 2005 13:20

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.

barf00s 1. Jun 2005 13:22

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
hmm ich schreib dir erstmaln beispiel her wie ichs >dann< machen würde ...

Delphi-Quellcode:
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;
p00h - ich hoffs iss soweit verständlich :)

marabu 1. Jun 2005 13:27

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Hallo smart,

Zitat:

Zitat von smart
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?

möchtest du oder musst du eine Datenbank realisieren?
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

smart 1. Jun 2005 14:01

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von marabu
Hallo smart,
möchtest du oder musst du eine Datenbank realisieren?
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

Das ist Vorgabe von meinem Vater. Der ist ein Gegner von Server und Treiber, warum auch immer. Das Programm sollte (Wenn es fertig ist) beliebig viele Felder und Verknüpfungen erzeugen können. Die Feldlänge sollte variabel sein. Das ganze wird nur Lokal benutzt, also kein Netzwerkbetrieb notwendig. Das ganze soll eine Einzelplatzversion werden.


@barf00s, vielen Dank. Ich teste es gerade. Der Code ansich läuft.

alcaeus 1. Jun 2005 14:12

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

barf00s 2. Jun 2005 07:59

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
:)

ja solang der code funktioniert - hab das einfach so in den antworteditor reingetippst

Sharky 2. Jun 2005 08:05

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Hai smart,

für kleine Sachen verwende ich ganz gerne die Absolute Database.

marabu 2. Jun 2005 08:08

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von smart
Das Programm sollte beliebig viele Felder und Verknüpfungen erzeugen können. Die Feldlänge sollte variabel sein.

Wenn ich es implementieren müsste, dann würde ich es als lineare Datenbank aufziehen, einen Daten-File und einen Index-File. Eine fertige Lösung (AskSam, InfoCentral, ...) kommt für deinen Vater nicht in Betracht?

Grüße vom marabu

barf00s 2. Jun 2005 08:15

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
diese absolute database isja nichmal 4free - selbst in der personal version wird'n nagscreen gezeigt ^^

RavenIV 2. Jun 2005 08:20

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

Sharky 2. Jun 2005 08:24

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von barf00s
diese absolute database isja nichmal 4free - selbst in der personal version wird'n nagscreen gezeigt ^^

Uff... Seit wann das denn? Ich selber habe eine Lizenz. Aber früher habe ich mit der personal gearbeitet und nie einen Nagscreeen gehabt.

MagicAndre1981 2. Jun 2005 08:26

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von barf00s
diese absolute database isja nichmal 4free - selbst in der personal version wird'n nagscreen gezeigt ^^

Uff... Seit wann das denn? Ich selber habe eine Lizenz. Aber früher habe ich mit der personal gearbeitet und nie einen Nagscreeen gehabt.

Ich hab mir am WE, die Personal in der Version 4.88 gezogen, da gibts kein Nagscreen.

barf00s 2. Jun 2005 08:31

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
laut deren page schon

Sharky 2. Jun 2005 08:36

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von barf00s
laut deren page schon

von der Hompage
In multi-user mode (file-server), nag screen is shown outside IDE.

Der nag screeen kommt nicht im singe-user mode.

barf00s 2. Jun 2005 08:38

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
stimmt schon -

smart 2. Jun 2005 08:39

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von Sharky
Hai smart,
für kleine Sachen verwende ich ganz gerne die Absolute Database.

Vielen Dank für den Tipp. Laut HP ganz gut. Nur wo bekomme ich einen Schlüssel her? Ohne Schlüssel kann man nicht Installieren?

MagicAndre1981 2. Jun 2005 08:41

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von smart
Zitat:

Zitat von Sharky
Hai smart,
für kleine Sachen verwende ich ganz gerne die Absolute Database.

Vielen Dank für den Tipp. Laut HP ganz gut. Nur wo bekomme ich einen Schlüssel her? Ohne Schlüssel kann man nicht Installieren?

den bekommst du per Mail zugeschickt.

barf00s 2. Jun 2005 08:43

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"

MagicAndre1981 2. Jun 2005 08:45

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von barf00s
Gibts doch einen Haken :)

Ich find aber auch nix über "Click here for registration to get a key"

Bevor du die Personal Downlaiden willst, gibst du einen Namen und eine Email an.

Dann bekommst du eine Mail mit dem Code. Du gibst beim Setup, den Namen, die Email und den Key ein und schon gehts.

ANdré

mason 2. Jun 2005 11:13

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Vielleicht ist auch TDBF interessant - hab da noch nicht mit gearbeitet, aber klingt danach, als ob es das ist was du suchst...

smart 2. Jun 2005 15:12

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von Sharky
für kleine Sachen verwende ich ganz gerne die Absolute Database.

Wenn Du damit auch arbeitest, hast Du mal ein Beispielcode für mich? Habe auf der HP nichts gefunden.

Sharky 2. Jun 2005 15:20

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von smart
... Wenn Du damit auch arbeitest, hast Du mal ein Beispielcode für mich? Habe auf der HP nichts gefunden.

Was möchtest Du in dem Demo denn gerne sehen?

smart 2. Jun 2005 15:28

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Ja, wie erzeuge ich ein DBFile?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ABSDatabase1.DatabaseFileName := 'D:\Test';
ABSDatabase1.DatabaseName := 'Test';
ABSDatabase1.Create;
end;
Geht nicht. Aber ich habe wenig Plan von Datenbankprogrammierung.

MagicAndre1981 2. Jun 2005 15:36

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von smart
Ja, wie erzeuge ich ein DBFile?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ABSDatabase1.DatabaseFileName := 'D:\Test';
ABSDatabase1.DatabaseName := 'Test';
ABSDatabase1.Create;
end;
Geht nicht. Aber ich habe wenig Plan von Datenbankprogrammierung.

Hallo Smart. Es wird ein Datenbank Designer installiert. Da kannst du die DAtenbank erstellen, Tabellen anlegen etc.

Dann legst du den Namen fest:

Delphi-Quellcode:
ABSDatabase1.DatabaseFileName := 'D:\Test.ABS';
ABSDatabase1.Open;
Und nun hast du mit deinem Programm die DB geöffnet und kannst Daten mit einer Query oder Table-komponete abfragen oder ändern.

André

Sharky 2. Jun 2005 15:36

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von smart
Ja, wie erzeuge ich ein DBFile?....

Ich schreibe mal ein Demo.

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.

smart 2. Jun 2005 18:55

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

MagicAndre1981 3. Jun 2005 07:59

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von smart
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. ;-)

Hallo Smart,

wenn du Absolute Database installierst, solltest du einen Ordner Demos finden, da gibts genug Beispiele. Schau einfach mal nach ;-)

André

smart 3. Jun 2005 08:11

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von MagicAndre1981
Hallo Smart,
wenn du Absolute Database installierst, solltest du einen Ordner Demos finden, da gibts genug Beispiele. Schau einfach mal nach ;-)
André

Ja danke, habe ich gefunden. Ich muss noch mal eine Dumme Frage stellen. Was ist der Unterschied Zwischen eine Database und eine Tabelle? Eine Database hat doch auch Feldnamen wie Tabellen, oder liege ich da falsch?

MagicAndre1981 3. Jun 2005 08:13

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von smart
Zitat:

Zitat von MagicAndre1981
Hallo Smart,
wenn du Absolute Database installierst, solltest du einen Ordner Demos finden, da gibts genug Beispiele. Schau einfach mal nach ;-)
André

Ja danke, habe ich gefunden. Ich muss noch mal eine Dumme Frage stellen. Was ist der Unterschied Zwischen eine Database und eine Tabelle? Eine Database hat doch auch Feldnamen wie Tabellen, oder liege ich da falsch?

Mit der DataBase-Komponente stellst du eine Verbindung zu der Datenbank her, damit du mit einer Table (nimm aber lieber eine Query) die Daten lesen und schreiben kannst.

André

smart 3. Jun 2005 08:29

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.

Sharky 3. Jun 2005 08:31

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von smart
Jetzt habe ich es geschnallt. Lohnt es sich eigentlich eine Lizenz zu kaufen? ....

Es geht ja nicht darum ob es sich "lohnt". Wen du die ABS-DB kommerziel oder im Multiuserbetrieb verwenden möchtest musst Du eine Lizenz kaufen. Wenn Du sie nur privat verwendet brauchst Du keine.

Die Frage ist also: Möchtest DU die ABS-DB verwenden oder nicht. :stupid:

MagicAndre1981 3. Jun 2005 08:32

Re: Datenbank realisieren, aber ohne Server und Treiber ?
 
Zitat:

Zitat von smart
FireBird habe ich auch getestet, bzw. wollte ich testen. Habe es aber nicht installiert bekommen.

Was hast du nicht hinbekommen? Mach am Besten einen neuen Thread auf, dann antworte ich dir da.

André


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr.
Seite 1 von 2  1 2      

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