Thema: Delphi Hilfe zu Synopse SQLite3

Einzelnen Beitrag anzeigen

AnCorr

Registriert seit: 15. Mär 2010
45 Beiträge
 
#16

Re: Hilfe zu Synopse SQLite3

  Alt 17. Mai 2010, 23:41
Hallo zusammen

Ich habe mein Problem nun endlich zusammen mit dem Entwickler des Frameworks loesen koennen.
Der Thread kann somit geschlossen werden.

Vielen Dank fuer die rege Teilnahme und den Versuchen mir zu helfen.
Mit dem gewonnenen Wissen kann ich nun auf den Einsatz der 'sqlite3.dll' verzichten.

Sollte sich jemand dafuer interessieren, hier ist der Link dazu:
Synopse SQLite3 Framework

Vielleicht kann ich ja dann dem einen oder anderen auch einmal helfen.


Gruss
AnCorr

Hier ein kleines Testprogramm:
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mp3Data, SQLite3Commons, SQLite3;

type
  TMainform = class(TForm)
    Ed_DBPath: TEdit;
    Btn_Open: TButton;
    Btn_List: TButton;
    Odlg_DB: TOpenDialog;
    Lb_Result: TListBox;
    procedure Btn_ListClick(Sender: TObject);
    procedure Btn_OpenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Mainform: TMainform;

   MediaPath: String;
  
implementation

{$R *.dfm}

procedure TMainform.Btn_OpenClick(Sender: TObject);
begin
   if Odlg_DB.Execute then
  begin
    if Odlg_DB.FileName <> 'then
    begin
       MediaPath := Odlg_DB.FileName;
      Ed_DBPath.Text := MediaPath;
    end;
  end;
end;

procedure TMainform.Btn_ListClick(Sender: TObject);
var
  Client: TSQLRestClient;
  Table: TSQLTable;
  Mp3Model: TSQLModel; // 'Model' for database
  Mp3Record: TSQLMp3Record; // Record for database

begin
  if MediaPath <> 'then
  begin
    Mp3Model := TSQLModel.Create([TSQLMp3Record], 'root');
    Mp3Record := TSQLMp3Record.Create;
    Client := TSQLRestClientDB.Create(Mp3Model, MediaPath);
    Table := Client.List([TSQLMp3Record], '*', 'Genre = "Asian Music"');
    if Table <> nil then // = nil on any error
    try
      Mp3Record.FillPrepare(Table);
      while Mp3Record.FillOne do
      begin
        Lb_Result.Items.Add(Mp3Record.Title);
      end;
    finally
      Table.Free;
    end;

    Mp3Model.Free;
    Mp3Record.Free;
  end;
end;

end.
Die Unit 'Mp3Data' definiert einen Record und eine Funktion zum Erzeugen.
Delphi-Quellcode:
unit Mp3Data;

interface

uses
  SQLite3Commons;

type

  TSQLMp3Record = class(TSQLRecord)
  private
    fPath: RawUTF8;
    fFilename: RawUTF8;
    fTitle: RawUTF8;
    fArtist: RawUTF8;
    fAlbum: RawUTF8;
    fGenre: RawUTF8;
    fTrack: RawUTF8;
    fYear: RawUTF8;
    fBitrate: RawUTF8;
    fSampleRate: RawUTF8;
    fDuration: RawUTF8;

  published
    property Path: RawUTF8 read fPath write fPath;
    property Filename: RawUTF8 read fFilename write fFilename;
    property Title: RawUTF8 read fTitle write fTitle;
    property Artist: RawUTF8 read fArtist write fArtist;
    property Album: RawUTF8 read fAlbum write fAlbum;
    property Genre: RawUTF8 read fGenre write fGenre;
    property Track: RawUTF8 read fTrack write fTrack;
    property Year: RawUTF8 read fYear write fYear;
    property Bitrate: RawUTF8 read fBitrate write fBitrate;
    property SampleRate: RawUTF8 read fSampleRate write fSampleRate;
    property Duration: RawUTF8 read fDuration write fDuration;
  end;

function CreateMp3Model: TSQLModel;

implementation

function CreateMp3Model: TSQLModel;
begin
  Result := TSQLModel.Create([TSQLMp3Record]);
end;

end.
Aus dem Framework werden fuer das kleine Programm nur folgende Dateien benoetigt:
sqlite3.obj
sqlite3.pas
sqlite3commons.pas
sqlite3fts3.obj
  Mit Zitat antworten Zitat