Du kannst es auch mal damit probieren (erste Antwort):
stackoverflow.com/qu...not-exists-in-sqlite
Wenn du die URL als primary key nutzen willst (also als Identifikation, die nur einmal vorkommen darf), kann es durchaus Sinn machen, das der Datenbank mitzuteilen, damit die sich darum kümmert. Also z.B. als Unique definieren und dann mit dem Code von oben einfügen.
Zu bedenken: Falls du dann doch mal eine Url zweimal einfügen möchtest, gibts von SQLite eins auf die Finger.
NOS1971 hat folgendes geschrieben : |
Ich würde gern in einer TSQLQuery 'SELECT COUNT(*) FROM ResultURLTable WHERE URL = :URL;' aber ich check nicht wie ich an das Ergebnis komme. |
Du kannst also momentan nur in die DB schreiben, aber nicht lesen? Das ist schlecht
Hier mal ein Beispiel (Pseudocode), wie das aussehen kann (kommt natürlich darauf an, welche Komponenten du benutzt).
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| function UrlExists(Url: String): boolean; var query: TSQLIteTable; begin query := sqlDB.GetTable('SELECT COUNT(*) AS cnt FROM ResultURLTable WHERE URL = :URL'); Result := (query.FieldAsInteger(query.FieldIndex['cnt']))>0; query.Free; end; |
Meistens ist es so, dass du mit .ExecSQL nur Befehle absenden kannst (z.B. INSERT). Wenn es aber eine Rückgabe geben soll, dann musst du bestimmt sowas wie ein Query haben, welches das Ergebnis aufnimmt.