SqlText

Erlaubt denINSERT/UPDATE von Datensätzen mit TEXT-Feldern.

Prototype


int SqlText(SQL;Text)

Parameter


ParameterBeschreibung

SQL

SQL-Befehl (INSERT oder UPDATE) der ausgeführt werden soll, dabei wird der Text-Wert durch ein '?' ersetzt

Beispiel: "INSERT INTO txttab VALUES (1,'TH','1',1,'A',?,'sys')"

Text

der neue Text - entweder eine Zeichenkette oder ein Merkmal-Ident

Rückgabewert


Wenn der SQL-Befehl leer war, dann wird 100 (SQL-Code für 'No Matching Records') zurückgegeben. Ansonsten der SQL-Code des ausgeführten Befehls. Häufige Rückgabewerte sind:

SQL-CodeBedeutungGrund
0OKAlles Gut - Befehl erfolgreich ausgeführt.
-201A syntax error has occurred.Es befindet sich ein Fehler im SQL-Befehl. Oft wurden Zeichenketten nicht mit Quote-Zeichen geklammert.
-236Number of columns in INSERT does not match number of VALUES.Die Anzahl der angegeben Spalten (beim INSERT) stimmt nicht mit der tatsächlichen Anzahl Spalten in der Tabelle überein.
-239Could not insert new row - duplicate value in a UNIQUE INDEX column.Es ist bereits ein Datensatz mit den angegeben Schlüssel-Feldern in der Tabelle vorhanden.
-282Found a quote for which there is no matching quote.Es befindet sich ein Fehler im SQL-Befehl. Irgendwo wird eine Zeichenkette mit einem Single- (') oder Double-Quote-Zeichen (") begonnen aber nicht mit einem weiteren Zeichen abgeschlossen.
-1213/-1349Character to numeric conversion error.Es wurde eine Zeichenkette für ein numerisches Feld zu übergeben. Der Versuch der Datenbank die Zeichenkette in eine Zahl umzuwandeln schlug fehl.

Hinweise


  • Beide Parameter können entweder Zeichenketten oder Merkmale sein. Eine Mischung darf aber nicht stattfinden. Die Funktion erkennt anhand des ersten Zeichens, ob es sich um eine Zeichenkette oder ein Merkmal handelt. Ist das erste Zeichen ein Double-Quote ("), dann wird der Parameter als Zeichenkette interpretiert, ansonsten als Merkmal-Ident.
  • Wenn TRACE aktiviert ist, wird der ausgeführte SQL-Befehl in die Protokoll-Datei geschrieben. Dies geschieht bevor er ausgeführt wird, d.h. selbst bei einem Programmabruch mit Dr.Syslog sollte der Befehl hinterher im Protokoll zu finden sein.
  • Es kann immer nur ein Textfeld bearbeitet und ein '?'-Platzhalter eingefügt werden. Weitere Platzhalter werden nicht befüllt, was zu einem sicheren Fehler bei der Ausführung der Funktion führt.