Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
Delphi 7 Enterprise
|
Re: Nextgrid und sqlite
4. Jul 2008, 10:50
ok
also ich glaub ich kapiers nich... bin ja noch Anfänger was Datenbanken angeht.
Ich hab auch mehrere Demos wie man das SQLite anspricht usw aber von denen werd ich nciht schlau... Das sagt mir alles nicht wie ich das Nextgrid beim start aus der db befülle und beim beenden andersrum... ich weiß nicht wie ich das machen soll. Und mir fällt auf... das Hinzufügen von leeren Spalten ist nicht das Problem, das geht auch mit dem Nextgrid in nullkommanix, aber das einlesen eben das is das problem und NUR das, selbst beim Schliessen waren bei 40 000 titeln nur einige sekunden nötig ist also ok. Würde das denn wenn ich es irgendwann mal hinbekomme, denn überhaupt schneller sein beim laden?
ok hab mal n test gemacht:
Delphi-Quellcode:
var
i : Integer;
slDBpath: string;
sldb: TSQLiteDatabase;
sltb: TSQLIteTable;
sSQL: String;
Notes: String;
begin
slDBPath := PrgPfad + ' config\Playlist1.db';
sldb := TSQLiteDatabase.Create(slDBPath);
if sldb.TableExists(' Playlist1') then begin
sSQL := ' DROP TABLE Playlist1';
sldb.execsql(sSQL);
end;
sSQL := ' CREATE TABLE Playlist1 ([ID] INTEGER PRIMARY KEY,[Nr] INTEGER NULL,';
sSQL := sSQL + ' [AV] FLOAT, [Nr] FLOAT, [Title] VARCHAR (255),[Path] VARCHAR (255),[Genre] VARCHAR (255),[Medium] VARCHAR (255)'+
//[picture] BLOB COLLATE NOCASE,
' [Quality] VARCHAR (255),[Rate] VARCHAR (255),[Artist] VARCHAR (255),[Album] VARCHAR (255),[Duration] VARCHAR (255), '+
' [Invalid] VARCHAR (255),[InfosLoaded] VARCHAR (255),[VideoPosition] VARCHAR (255),[Filedate] VARCHAR (255),[Title] VARCHAR (255),[Resolution] VARCHAR (255), '+
' [LastUse] VARCHAR (255),[FileSize] VARCHAR (255),[VideoDelay] VARCHAR (255),[PlayCount] VARCHAR (255),[Memo] BLOB,);';
sldb.execsql(sSQL);
sldb.execsql(' CREATE INDEX Playliste ON [Playlist1]([Name]);');
//begin a transaction
sldb.BeginTransaction;
for i := 0 to JvPlaylist1.RowCount -1 do begin //,picture
sSQL := ' INSERT INTO Playlist1(AV,Nr,Title,Path,Genre,Medium,Quality,Rate,Artist,Album,Duration,Invalid, '+
' InfosLoaded,VideoPosition,Filedate,Title,Resolution,LastUse,FileSize,VideoDelay,PlayCount,Memo) '+
' VALUES ('+JvPlaylist1.Cell[0,i].AsString +
JvPlaylist1.Cell[1,i].AsString +
JvPlaylist1.Cell[2,i].AsString +
JvPlaylist1.Cell[3,i].AsString +
JvPlaylist1.Cell[4,i].AsString +
JvPlaylist1.Cell[5,i].AsString +
JvPlaylist1.Cell[6,i].AsString +
JvPlaylist1.Cell[7,i].AsString +
JvPlaylist1.Cell[8,i].AsString +
JvPlaylist1.Cell[9,i].AsString +
JvPlaylist1.Cell[10,i].AsString +
//JvPlaylist1.Cell[11,i].AsString +
JvPlaylist1.Cell[12,i].AsString +
JvPlaylist1.Cell[13,i].AsString +
JvPlaylist1.Cell[14,i].AsString +
JvPlaylist1.Cell[15,i].AsString +
JvPlaylist1.Cell[16,i].AsString +
JvPlaylist1.Cell[17,i].AsString +
JvPlaylist1.Cell[18,i].AsString +
JvPlaylist1.Cell[19,i].AsString +
JvPlaylist1.Cell[20,i].AsString +
JvPlaylist1.Cell[21,i].AsString +' ");';
//do the insert
sldb.ExecSQL(sSQL);
end;
sldb.Commit;
sldb.Free;
seh ich das ungefähr richtig so? Die db datei wird erstellt das klappt aber is null bytes groß... und es kommt kein Fehler im Debugger? Was is da falsch?
Gruß
tom
Tom Just DO it
|