Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Suche unicodefähige SQLite-Komponente (https://www.delphipraxis.net/145361-suche-unicodefaehige-sqlite-komponente.html)

Andreas L. 30. Dez 2009 13:54

Datenbank: SQLite • Version: 3 • Zugriff über: TSQLiteDatabase

Suche unicodefähige SQLite-Komponente
 
Hi,

bisher habe ich immer TSQLiteDatabase von Tim Anderson ( http://www.itwriting.com/blog/a-simp...r-for-sqlite-3 ) verwendet. Leider unterstützt die Komponente kein Unicode, bei einem arabischen String اللغة العربية erhalte ich nur sowas اللغة العربية. Kennt jemand eine Möglichkeit TSQLiteDatabase (bzw. TSQLiteTable3) unicodefähig zu machen oder gibt es gute Alternativen? Wichtig wäre mir das die Komponente auch für die kommerzielle Programme verwendet werden darf, nicht zu teuer ist (gratis wäre noch besser ;-) ) und auch ohne Installation verwendet werden kann (d. h. Units in den Suchpfad und los gehts...). Ich verwende Delphi 2009 Pro.

webcss 30. Dez 2009 13:57

Re: Suche unicodefähige SQLite-Komponente
 
Hier z.B. SQLitePass

Guten Rutsch!

Andreas L. 30. Dez 2009 14:23

Re: Suche unicodefähige SQLite-Komponente
 
Zitat:

Zitat von webcss
Hier z.B. SQLitePass

Wow, macht schon mal einen guten Eindruck. Was mich etwas irritiert ist, das ich nirgendwo eine Tabelle angeben kann/muss. Es ist immer nur von Datasets die Rede. Ein Dataset müsste ja eigentlich ein record einer Tabelle sein. :?: Ich habs trotzdem mal probiert einen Dataset mit den Tabellennamen anzusprechen, wie zu erwarten war, gehts das leider nicht. Kannst du mir noch einen kleinen Stoß in die richtige Richtung geben? Mein Code:

Delphi-Quellcode:
procedure TCsLanguageManager.LoadLanguages(AFileName: string);
var
  DB: TSqlitePassDatabase;
  Table: TSqlitePassDataset;
  NewLanguage: TCsLanguage;
begin
  DB := TSqlitePassDatabase.Create(nil);
  try
    DB.Database := AFileName;
    DB.Open;
    Table := DB.Datasets.DatasetByName('languages'); //languages ist der Tabellenname, hier erhalte ich eine Exception: Dataset nicht gefunden
    if Table <> nil then
    begin
      FLanguages.Clear; //FLanguages ist eine TObjectList
      while not Table.Eof do
      begin
        NewLanguage := TCsLanguage.Create;
        with NewLanguage do
        begin
          Name := Table.FieldByName('name').AsString;
          IntName := Table.FieldByName('int_name').AsString;
          ISOCode := Table.FieldByName('iso_code').AsString;
          Author := Table.FieldByName('author').AsString;
          ImageIndex := StrToIntDef(Table.FieldByName('flag_index').AsString, -1);
          BidiMode := TBidiMode(StrToIntDef(Table.FieldByName('bidimode').AsString, 0));
        end;
        FLanguages.Add(NewLanguage);
        Table.Next;
      end;
    end;
    DB.Close;
  finally
    DB.Free;
  end;
end;
Zitat:

Zitat von webcss
Guten Rutsch!

Dir auch :cheers:

hoika 30. Dez 2009 14:27

Re: Suche unicodefähige SQLite-Komponente
 
Hallo,

Dataset = set of data = Query/Table

nicht mit Record oder Tupel zu verwechseln (eine "Zeile" eines DataSets")

Du machst es schon richtig.
Wie sieht es mit Groß-/Kleinschreibung aus ?


Heiko

Andreas L. 30. Dez 2009 14:33

Re: Suche unicodefähige SQLite-Komponente
 
Zitat:

Zitat von hoika
Hallo,

Dataset = set of data = Query/Table

nicht mit Record oder Tupel zu verwechseln (eine "Zeile" eines DataSets")

Du machst es schon richtig.

Gut zu wissen ;-)

Zitat:

Zitat von hoika
Wie sieht es mit Groß-/Kleinschreibung aus ?

Sowohl Tabellenname als auch Spaltennamen sind komplett in Kleinbuchstaben. Rechtschreibfehler ist im Code auch keiner. Was könnte noch die Ursache für die Exception sein? Soll ich die DB mal anhängen?

hoika 30. Dez 2009 18:23

Re: Suche unicodefähige SQLite-Komponente
 
Halo,

hast du die ToolBox mal ausprobiert?

1


Heiko

Andreas L. 31. Dez 2009 09:48

Re: Suche unicodefähige SQLite-Komponente
 
Liste der Anhänge anzeigen (Anzahl: 4)
Die Toolbox zeigt mir nur die Integerfelder an (Screenshot 1), bei "Field Definitions" werden mir aber alle Felder angezeigt (Screenshot 2). Die Datenbank habe ich mit SQLite Database browser erstellt (Screenshot 3 und 4). In der Toolbox kann ich beim erstellen einer neuen Datenbank mehrere Varianten (Kind) auswählen, dachte SQLite wäre standardisiert aber anscheinend kocht da wieder mal jeder sein eigenes Süppchen. Meine Datenbank mit der Toolbox erstellen geht auch nicht, weil ich beim Klick auf "Create new table" die Meldung

Zitat:

---------------------------
SqliteToolbox
---------------------------
Erreur abstraite.
---------------------------
OK
---------------------------
erhalte.

Anbei die Datenbank. Hat noch jemand eine Idee warum ich die DB nicht verwenden kann?

Andreas L. 31. Dez 2009 09:49

Re: Suche unicodefähige SQLite-Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier noch die DB.

EDIT: Und noch die Fehlermeldung die bei DataSetByName auftritt:
Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Test.exe ist eine Exception der Klasse Exception mit der Meldung 'TSqlitePassDatasets.DatasetByName : Dataset languages not found.' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------

EDIT2:
Delphi-Quellcode:
    ShowMessage(IntToStr(DB.Datasets.Count)); //ergibt 0
    Table := DB.Datasets.FindDataset('languages'); //Rückgabe ist nil
EDIT3:
Delphi-Quellcode:
    if DB.Connected then
      ShowMessage('OK'); //Meldung wird angezeigt
Bin ratlos... :cry:

EDIT4: Hab es jetzt noch mit anderen Datenbanken versucht. U. a. die Cookies.sqlite von Firefox und Chrome, selber Fehler. SQLite Datebase Browser öffnet die Dateien problemlos. Gibts noch andere SQLite Komponenten?

webcss 31. Dez 2009 12:31

Re: Suche unicodefähige SQLite-Komponente
 
Ja, die hier disqlite

hab ich aber auch noch nicht probiert, kostenpflichtig. Der explorer vom selben Entwickler macht aber unicode, mit seinen kompos

Andreas L. 31. Dez 2009 12:47

Re: Suche unicodefähige SQLite-Komponente
 
Zitat:

Zitat von webcss
Ja, die hier disqlite

hab ich aber auch noch nicht probiert, kostenpflichtig. Der explorer vom selben Entwickler macht aber unicode, mit seinen kompos

149 € ist schon ein bisschen viel. Gibts noch Alternativen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz