Seite 1 von 1

[gelöst] SQL INSERT Starbasic

Verfasst: Sa, 20.03.2010 23:34
von moritz
Hallo, ich versuche aus einer Paradoxdatenbanktabelle eine OO-Datenbanktabelle zu erstellen.
Das Programm soll beliebige mir unbekannte Datenbanken konvertieren können.
Wenn ich aus der Paradoxtabelle einige mir bekannte Felder auslese und daraus (mit delphi und sql) eine neue Datenbanktabelle in OO erzeuge, funktioniert das auch problemlos.
Das Grundprinzip eines sql-Befehles zum Eintrag eines neuen Datensatzes in eine Datenbank ist doch so:
INSERT INTO table_name ("column1", "column2", "column3",...)
VALUES ('value1', 'value2', 'value3',...)
Wenn ich das so mache, kommt immer ein für mich nicht zu deutender Laufzeitfehler. Ich kann keinen Fehler im sql-Statement entdecken.
Das statement ist offensichtlich in Ordnung.
Das sql-statement hat eine Länge von ca. 600 Zeichen. Ist die Stringlänge begrenzt?
Was kann man machen, wenn der string zu lang ist?
Vielen Dank,
Moritz

Re: SQL INSERT Starbasic

Verfasst: Sa, 20.03.2010 23:41
von Barlee
Hallo Moritz,

hast Du das SQL mal unter Extras/SQL ausgeführt?
Was für eine Fehlermeldung liegt vor?

Gruß Barlee

Re: SQL INSERT Starbasic

Verfasst: So, 21.03.2010 09:02
von moritz
Danke für Deine Hilfe,
das Problem scheinen die Datumsfelder zu sein.
Wie sind Daten im datumformat richtig in ein SQL- Statement einzugeben?
Vor 3.2 ging das so: '2010-12-24'.
Das scheint jetzt nicht mehr zu funktionieren. Wurde das akzeptierte Format geändert?
Moritz

Re: SQL INSERT Starbasic

Verfasst: So, 21.03.2010 11:09
von Barlee
Das Datumsformat beim Einfügen hat sich nicht geändert. Funktioniert auch unter 3.2 wie gehabt.
Wie kommst Du darauf, dass es an den Datumsfeldern liegt?

Was bekommst Du denn für eine Fehlermeldung, wenn Du es probehalber unter Extras/SQL ausführst. Ohne diese Info ist es nur Herumraten..

Gruß Barlee

Re: SQL INSERT Starbasic

Verfasst: So, 21.03.2010 18:15
von moritz
Danke Barlee,
dein Hinweis mit Extras/sql hat mir gut geholfen.
Ich hatte bis jetzt in Base nur Abfragen gemacht, aber kein INSERT.
Die Konvertierung der Datums- Strings war falsch. Das war mir noch nie aufgefallen.
Entweder ich hatte bis jetzt Glück, oder OO.3.1 war toleranter.
z.B. '2010-1-20' erzeugt eine Fehlermeldung.
Inzwischen hab ich die Konvertierung geändert und leere Datumfelder werden mit NULL übergeben .
Nun klappt es mit sql-Statements > 600 Zeichen.
Moritz