Zum Hauptinhalt springen

OdbcParamAdd

obj -> OdbcParamAdd(int1[, int2[, logic3]]) : int

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von der DLL-Schnittstelle mit grafischer Erweiterung Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service mit grafischer Erweiterung

Parameter für ODBC-Statement definieren

Details

  • obj: Deskriptor eines ODBC-Statement-Objekts
  • int1: Datentyp
  • int2: maximale Länge der Zeichenkette (optional)
  • logic3: Länge der Zeichenkette ist variabel (optional)
  • Resultat: int Fehlerwert
  • Siehe: Verwandte Befehle , OdbcPrepare () , OdbcParamSet ()

SQL-Statements können zum Zweck der einfacheren Handhabung parametrisiert werden. Dazu werden im SQL-Statement Fragezeichen anstelle der Parameter angegeben.

INSERT INTO Customer (ID,NAME) VALUES (1000,'vectorsoft AG')

Diese Answeisung fügt den Datensatz mit der ID 1000 in die mit ODBC verbundene Datenquelle ein. In der Regel liegen die Daten (hier ID und Name) jedoch nicht fix vor, sondern werden z. B. aus einer Eingabemaske eines Anwenders übernommen. Zu diesem Zweck könnte das Statement wie folgt angepasst werden:

INSERT INTO Customer (ID,NAME) VALUES (?,?)

Die durch ? gekennzeichneten Werte werden extern bezogen. Das Beispiel wird in CONZEPT 16 wie folgt realisiert:

tOdbcStm # tOdbcCon->OdbcPrepare('INSERT INTO Customer (ID,NAME) VALUES (?,?)');
if (tOdbcStm > 0)
{
tOdbcStm->OdbcParamAdd(_TypeInt);
tOdbcStm->OdbcParamAdd(_TypeAlpha, 50);

// ...
}

Durch die OdbcParamAdd()-Anweisungen werden dem Befehl zwei (für jedes Fragezeichen im SQL-Statement) Parameter mit dem entsprechenden Datentyp der Spalte hinzugefügt. Als (obj) wird der Deskriptor des OdbcStm -Objekts angegeben. In (int1) wird der Datentyp mit einer _Type...-Konstanten angegeben.

info

Bei den Datentypen _TypeAlpha und _TypeHandle ist der Parameter (int2) notwendig. Er gibt die maximale Länge der Zeichenkette an.

Im Parameter (logic3) kann beim Datentyp _TypeAlpha definiert werden, ob die in (int2) angegebene Länge eine variable Länge ist (true) oder eine Maximallänge (false).

info

Bei Angabe einer Maximallänge füllen einige ODBC-Treiber (bzw. das zugrunde liegende Datenbank-System) den Feldinhalt bis zur maximalen Feldlänge mit Leerzeichen auf.

Der Datentyp _TypeHandle kann angegeben werden, um mit OdbcParamSet () ein Memory -Objekt an das ODBC-Statement zu übergeben. In diesem Fall werden die enthaltenen Daten des Memory-Objektes als SQL_LONGVARCHAR übertragen. Bei der Übertragung findet keine Zeichensatzkonvertierung statt.

Nach der Definition der Parameter, können die eigentlichen Werte mit dem Befehl OdbcParamSet () angegeben werden:

tOdbcStm->OdbcParamSet(1, 1000);
tOdbcStm->OdbcParamSet(2, 'vectorsoft AG');

Bei der Ausführung des Statements mit OdbcExecute () werden die ? durch die aktuell definierten Werte ersetzt.

Die Anweisung kann folgende Werte zurückgeben:

  • _ErrOk Die Anweisung wurde erfolgreich ausgeführt.
  • _ErrOdbcError Bei der Durchführung ist ein Fehler aufgetreten. Genauere Informationen über die Fehlerursache können über die Fehler-Eigenschaften OdbcErr... des ODBC-Statement-Objekts abgefragt werden.
  • _ErrOutOfMemory Zur Ausführung der Anweisung steht kein ausreichender Hauptspeicher zur Verfügung.

Mögliche Laufzeitfehler: