AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TSQLiteDatabase: A SQLite3 Database Wrapper
Thema durchsuchen
Ansicht
Themen-Optionen

TSQLiteDatabase: A SQLite3 Database Wrapper

Ein Thema von HalloDu · begonnen am 17. Sep 2009 · letzter Beitrag vom 11. Nov 2016
Antwort Antwort
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#1

AW: TSQLiteDatabase: A SQLite3 Database Wrapper

  Alt 4. Mär 2011, 19:26
Hallöchen,

gibt es eigentlich eine aktuellere Version des Wrappers? Hat sich daran noch etwas getan?

Gruß

Wormid
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#2

AW: TSQLiteDatabase: A SQLite3 Database Wrapper

  Alt 21. Jul 2016, 15:29
Ich habe mal ein wenig gebuddelt und das Thema hier gefunden.
Ich stelle mir gerade die Frage, ob ich von INI zu SQLite3 umstellen sollte oder eher nicht.

In einer INI-Datei meines Projektes können zwischen 1 und 100 Sektionen sein (in der Regel maximal 10) mit etwa (je nach Sektion) 20 bis 30 Schlüsseln.
Es wird relativ häufig auf die einzelnen Schlüssel zugegriffen. Eigentlich sogar immer - egal, was man bei meinem Projekt macht, wird irgendetwas ausgelesen.

Da stellt sich mir nun die Frage: weiterhin INI oder SQLite3?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: TSQLiteDatabase: A SQLite3 Database Wrapper

  Alt 21. Jul 2016, 15:51
Bau dir eine abstrakte Klasse, wo du die Werte abfragen kannst.

Dann dazu die konkrete für eine Ini-Datei (beim reinen Lesen bietet sich auf jeden Fall TMemIniFile an) und bei Bedarf weitere (die dann z.B. mit einer SQlite DB spricht).

Dann kannst du die auch direkt vergleichen, was dir genehmer ist oder was im konkreten Fall besser passt.

Eine Ableitung von TCustomIniFile die dann mit einer SQlite Datenbank spricht ist natürlich auch denkbar.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#4

AW: TSQLiteDatabase: A SQLite3 Database Wrapper

  Alt 21. Jul 2016, 15:57
So wie ich das verstanden habe, kann ich also einfach TIniFile durch TMemIniFile austauschen.
Und dort wo gespeichert wird, müsste ich dann UpdateFile aufgerufen werden.

Richtig oder liege ich total falsch?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: TSQLiteDatabase: A SQLite3 Database Wrapper

  Alt 21. Jul 2016, 16:01
Richtig.

Trotz allem würde ich eine Basis-Klasse für die Einstellungen erschaffen und dann konkrete die aus einem bestimmten Topf die Daten beschaffen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#6

AW: TSQLiteDatabase: A SQLite3 Database Wrapper

  Alt 21. Jul 2016, 16:02
Um ehrlich zu sein verstehe ich nur Bahnhof
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: TSQLiteDatabase: A SQLite3 Database Wrapper

  Alt 21. Jul 2016, 16:09
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:46 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