Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TSQLiteDatabase: A SQLite3 Database Wrapper (https://www.delphipraxis.net/140402-tsqlitedatabase-sqlite3-database-wrapper.html)

dGeek 21. Jul 2016 16:02

AW: TSQLiteDatabase: A SQLite3 Database Wrapper
 
Um ehrlich zu sein verstehe ich nur Bahnhof :-D

Sir Rufo 21. Jul 2016 16:09

AW: TSQLiteDatabase: A SQLite3 Database Wrapper
 
So etwas z.B.
Delphi-Quellcode:
unit Unit2;

interface

uses
  System.IniFiles;

type
  TEinstellungen = class abstract
  private
    procedure SetFoo( const Value: string );
    function GetFoo: string;
  protected
    function GetValue( const Key: string ): string; virtual; abstract;
    procedure SetValue( const Key, Value: string ); virtual; abstract;
  public
    property Foo: string read GetFoo write SetFoo;
  end;

  TIniEinstellungen = class( TEinstellungen )
  private
    FIniFile: TMemIniFile;
  protected
    function GetValue( const Key: string ): string; override;
    procedure SetValue( const Key: string; const Value: string ); override;
  public
    constructor Create( const IniFileName: string );
    destructor Destroy; override;
  end;

implementation

{ TEinstellungen }

function TEinstellungen.GetFoo: string;
begin
  Result := GetValue( 'foo' );
end;

procedure TEinstellungen.SetFoo( const Value: string );
begin
  SetValue( 'foo', Value );
end;

{ TIniEinstellungen }

constructor TIniEinstellungen.Create( const IniFileName: string );
begin
  inherited Create;
  FIniFile := TMemIniFile.Create( IniFileName );
end;

destructor TIniEinstellungen.Destroy;
begin
  FIniFile.Free;
  inherited;
end;

function TIniEinstellungen.GetValue( const Key: string ): string;
begin
  Result := FIniFile.ReadString( 'Default', Key, '' );
end;

procedure TIniEinstellungen.SetValue( const Key, Value: string );
begin
  FIniFile.WriteString( 'Default', Key, Value );
  FIniFile.UpdateFile;
end;

end.

dGeek 21. Jul 2016 16:19

AW: TSQLiteDatabase: A SQLite3 Database Wrapper
 
Ok nun hab ich es kapiert!

Was in meinem Fall aber absolut schrecklich wäre ist folgendes:
Delphi-Quellcode:
{ TEinstellungen }

function TEinstellungen.GetFoo: string;
begin
  Result := GetValue( 'foo' );
end;

procedure TEinstellungen.SetFoo( const Value: string );
begin
  SetValue( 'foo', Value );
end;
Dafür habe ich zu viele Werte.

Oder ich kapier den Sinn nicht.

Ich glaube ich wechsle einfach zu TMemIniFile und gut ist. Klasse hin oder her, alles zu ver-komplizieren ist nicht mein Ding.

Ghostwalker 10. Nov 2016 19:36

AW: TSQLiteDatabase: A SQLite3 Database Wrapper
 
Gibts hier was aktuelleres/neues ?

Ansonsten würd ich die Klasse evtl. selbst um ein/zwei Features erweitern :)

Aviator 10. Nov 2016 21:04

AW: TSQLiteDatabase: A SQLite3 Database Wrapper
 
Zitat:

Zitat von Ghostwalker (Beitrag 1353304)
Gibts hier was aktuelleres/neues ?

Ansonsten würd ich die Klasse evtl. selbst um ein/zwei Features erweitern :)

Also ich hatte damals als ich auch auf der Suche war nichts gefunden. Ist jetzt etwa 1 Jahr her. Habe mir dann auch diverse andere Funktionen eingebaut die in dem Wrapper nicht drin waren. Bzw. habe ich nur die Funktionsdefinitionen davon verwendet und mir einen eigenen Wrapper geschrieben. Den kann und möchte ich hier aber leider nicht veröffentlichen. :|

Ghostwalker 10. Nov 2016 21:58

AW: TSQLiteDatabase: A SQLite3 Database Wrapper
 
hm...wenn ich mir die Source der Klassen angugg ist das schon ein ziemlicher Verhau. :-D

Aber im Moment reicht mir eine kleine Erweiterung aus.

Evtl. werd ich mal auf Basis des eigentlich Wrappers mal noch was Übersichtliches Bauen :)

Ghostwalker 11. Nov 2016 06:04

AW: TSQLiteDatabase: A SQLite3 Database Wrapper
 
Für Interresenten:

unter https://github.com/stijnsanders/TSQLite gibt es eine etwas aktuellere DLL-Umsetzung (der dazugehörige Wrapper ist.....sehr einfach :) )


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 Uhr.
Seite 3 von 3     123   

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