Einzelnen Beitrag anzeigen

Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#1

SQLLite Datensatz hinzufügen, wenn nicht vorhanden

  Alt 8. Jan 2015, 10:20
Datenbank: SQLite • Version: 3 • Zugriff über: TSQLConnection
Hi,

ich wollte gerne mit so wenig wie möglichem Aufwand in folgende Datenbank:

Code:
CREATE TABLE [Cities] (
[ID] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[Province] INTEGER NOT NULL,
[Name] VARCHAR(256) NOT NULL,
[Latitude] FLOAT NULL,
[Longitude] FLOAT NULL
);

CREATE TABLE [Countries] (
[ID] INTEGER NOT NULL PRIMARY KEY,
[Region] INTEGER NOT NULL,
[Name] VARCHAR(256) NOT NULL
);

CREATE TABLE [Location] (
[ID] INTEGER PRIMARY KEY NOT NULL,
[City] INTEGER NOT NULL,
[Radio] INTEGER NOT NULL,
[Frequency] FLOAT NULL,
[Band] INTEGER NULL
);

CREATE TABLE [Province] (
[ID] INTEGER NOT NULL PRIMARY KEY,
[Country] INTEGER NOT NULL,
[Name] VARCHAR(256) NOT NULL
);

CREATE TABLE [Stations] (
[ID] INTEGER PRIMARY KEY NOT NULL,
[Genre] INTEGER NULL,
[Name] VARCHAR(256) NOT NULL,
[URL] VARCHAR(256) NOT NULL,
[Logo] VARCHAR(256) NULL
);
meine Datensätze einfügen und wenn möglich mittels einer einzigen bzw. so wenig wie möglichen SQL Anweisung(en). Dabei sollen keine Dupletten auftreten.

Delphi-Quellcode:
procedure AddToDatabase(const CountryRegion: Integer;
      const CountryName: String; const ProvinceName: String;
      const CityName: String; const CityLatitude,CityLongitude: Single;
      const RadioName, RadioUrl, RadioLogoUrl: String;
      const RadioGenre: Integer; const RadioBand: Integer;
      const RadioFrequency: Single);
Bis jetzt habe ich immer erst eine SQL Abfrage gemacht ob der Name des Landes in dem Datensatz ist, wenn nicht dann geschrieben. Die ID habe ich genommen und bin in die Cities Tabelle gegangen, hab das selbe mit dem Stadteintrag gemacht, dann in der Stations hinzugefügt und zuletzt den Eintrag in Location. Das sind mir aber ein bisschen zu viele Einträge, deswegen würde ich das mit so wenig wie möglich Abfragen realisieren. Hat jemand eine Idee, wie die Abfrage dafür aussehen kann? Das letzte mal das ich mit SQL gearbeitet habe ist etwas her und damals hab ich die Queries einfach in Office erstellt und in Delphi eingefügt.

Geändert von Peter666 ( 8. Jan 2015 um 10:39 Uhr)
  Mit Zitat antworten Zitat