PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cursor-Programmierung


BodyLove
2008-02-10, 15:29:53
Ich weiß, es ist eine sehr spezielle Frage, aber vielleicht habt ihr eine Lösung

Es gibt eine Vorlage für SQL-Binding

Beispiel:
SQLBindCol(hstmt, // Statement Handle
1, // Nummer der Spalte der Ergebnistabelle des SQL-Select-Befehls von SQLExecDirect
SQL_C_DOUBLE, // Datentyp der Programmvariablen
&Cursor.Nummer, // Adresse der zuzuordnenden Variablen
0, // Länge der Variablen in Bytes; nur nötig bei Strings
NULL); // Adresse einer Variablen, die die Anzahl der tatsächlich kopierten Bytes enthält

Meine Frage ist das Kaufmannsund beim Cursor.Nummer.

Kommt das & bei allen Werten ausser C_Chars, oder umgekehrt. Ich habe schon bei Google gesucht und auch den Prof gefragt. Google finde ich nichts, Prof antwortet nicht.

Neomi
2008-02-10, 16:24:40
Das & ist der Adressoperator, der liefert ganz einfach zu einer Variablen im Speicher die entsprechende Adresse. Immer, wenn man die Adresse von einer Variablen übergeben muß, weil es ein Output-Parameter ist, dann benötigt man entweder schon einen Pointer (ein String ist ein char-Array, nicht indizierte Arrays als Ausdruck liefern immer die Adresse des Elementes mit Index 0) oder muß ihn mit dem Adressoperator ermitteln.

BodyLove
2008-02-10, 16:31:18
Das ist mir klar. Aber warum wird das dann beim Skript bei einem Double-Wert verwendet, beim Char-Array nicht.

Nach meinem verständnis braucht man beim Char-Array den & weil man einen Array nicht ohne weiteres kopieren kann. Laut Skript ist es aber genau umgekehrt.

Neomi
2008-02-10, 16:35:36
Hab ich doch schon geschrieben: nicht indizierte Arrays als Ausdruck liefern die Adresse des ersten Elements. Deshalb benötigst du keinen Adressoperator mehr davor.

Array == &Array[0]

BodyLove
2008-02-10, 20:55:28
danke. Ich zähl auf dich. Klingt aber alles ganz logisch und richtig.