Thema: Delphi Hilfe zu Synopse SQLite3

Einzelnen Beitrag anzeigen

AnCorr

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

Hilfe zu Synopse SQLite3

  Alt 16. Mai 2010, 00:52
Datenbank: SQLite3 • Version: 3.6 • Zugriff über: Synopse SQLite3 Framework
Hallo zusammen

Leider hat mir die Suchfunktion zu 'Synopse SQLite3' keine Treffer angezeigt. Deshalb wende ich mich jetzt an euch.

Das Framework scheint ja sehr interessant zu sein, leider gibt es keine Dokumentation dazu und die Beispiele sind alles andere als 'brauchbar'. Der Blog dazu gibt auch gar nichts her. Das Framework ist fuer mich deshalb interessant, da man damit ohne die sonst verwendete externe sqlite3.dll auskommt.

Worum geht's?
Ich habe eine kleine SQLite3 Datenbank mit einigen Tabellen. Nun moechte ich aus einer der Tabellen bestimmte Datensaetze auslesen.
Der SQL Befehl wuerde dann z. B. so lauten: "Select * From Mp3Record Where Genre = 'Asian Music'"
Als Ergebnis muesste dann ein oder mehrere Records zurueckkommen (sofern entsprechende Datensaetze gefunden werden).

Kennt jemand von euch das Framework? Weiss jemand, wie ich das realisieren kann?

Vom Autor des Frameworks bekam ich folgende Antwort(leider etwas abwertent auf meine Anfrage hin):

Zitat:
For such low level SQLite3 work, take a look at TSQLRequest.Execute methods, and see how to loop through all rows.

Delphi-Quellcode:
var
  R: TSQLRequest;
  value: Int64;
  res: integer;
begin
  try
    R.Prepare(aDB,'Select * From Mp3Table Where Genre=''Asian Music'';'); // note the '' double quotes inside the ' string '
    repeat
      res := R.Step;
      if res=SQLITE_ROW then
      begin // we got some data
        value := sqlite3_column_int64(R.Request,0);
        // use other low level functions to get your data
      end;
    until res=SQLITE_DONE;
  finally
    R.Close; // always release statement
  end;
end;
With the framework, you should better create a TSQLRecord descendant class with the appropriate fields corresponding to your database, then use a Client/Server approach as shown in the supplied samples.
Das grosse Problem fuer mich hier ist die Variable 'aDB'. Laut Funktion in der Datei SQLite3.pas muss 'aDB' vom Typ TSQLHandle sein.
Leider habe ich damit noch nie etwas zu tun gehabt. Was ist denn ein TSQLHandle?
In der Datei SQLite3.pas ist der Typ so deklariert:

/// internaly store the SQLite3 database handle
TSQLHandle = type cardinal;

Wie definiere ich in meinem Programm 'aDB' (oder auch einen anderen Namen) so, dass sie als TSQLHandle verwendet wird?
Wo stelle ich die Beziehung zu meiner Datenbankdatei her?


Waere schoen, wenn mir jemand helfen koennte.
Danke schon im voraus!

Gruss
AnCorr
  Mit Zitat antworten Zitat