Entwickler-Ecke

Datenbanken - Nahezu doppelte Einträge in die DB schreiben


NOS1971 - Do 20.03.14 11:45
Titel: Nahezu doppelte Einträge in die DB schreiben
Hallo zusammen,

ich habe ein Problem in meine SQLite3 DB zu schreiben ... und zwar möchte ich Keywords mit den dazugehörigen ID's der URL's speichern von denen die genutzt werden ...

So baue ich die die DB auf:


Delphi-Quelltext
1:
2:
3:
 // keyword table
 SQLExecString := 'CREATE TABLE KeywordTable ([ID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, [URLID] INTEGER, [KEYWORD] TEXT, [USAGECOUNT] INTEGER);';
 AnalyserResultDataBaseConnecton.Execute(SQLExecString,nil);


So schreibe ich in die DB - in der CurrentItemID ist die jeweilige ID:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
SQLQuery.Params.Clear;
SQLQuery.Sql.Text := 'INSERT INTO KeywordTable(URLID, KEYWORD, USAGECOUNT) ' +
                     'VALUES (:URLID, :KEYWORD, :USAGECOUNT)';
SQLQuery.ParamByName('URLID').AsInteger := CurrentItemID;
SQLQuery.ParamByName('KEYWORD').AsString := tempkeywords.Strings[j];
SQLQuery.ParamByName('USAGECOUNT').AsInteger := 1;
SQLQuery.ExecSql;


Normalerweise müsste ich am Ende eines Durchlaufes eine Tabelle haben mit Daten wie:

Keyword | ID | UsageCount

Test | 1 | 1
Test | 2 | 1
Test1 | 2 | 1

aber irgendwie lässt er keine "nahezu" doppelten einträge zu ... warum ?

Ich hoffe Ihr könnt mir helfen.

Grüße ins Forum und vielen Dank,

Andreas


baumina - Do 20.03.14 11:48

Zitat:
aber irgendwie lässt er keine "nahezu" doppelten einträge zu ... warum ?


Wie lautet die Fehlermeldung beim ExecSQL?


NOS1971 - Do 20.03.14 13:51

Also ich glaube grad das Problem liegt noch an einer anderen Stelle ... ich werde da nochmal was umstellen bevor ich mich dem Fehler widme um einen anderen Fehler auszuschliessen