0

MSDN の特定のドキュメントで問題が発生しています。ODBC 経由で SQL Server インスタンスに接続するために C++ (または C) を使用しています。このドキュメントの下部にあるコード サンプルをご覧ください。

サンプルには AllocParamBuffer() という関数があることに注意してください。ドキュメントには、何をすべきかが説明されていますが、それ以上のヘルプはありません。この特定のケースでこの関数の定義を複製する方法、またはさらに良いことに、それが実行できることを示す方法について、誰かが私にいくつかの指針を教えてください (しゃれは意図していません)。私は本当の障害に直面しており、他に支援を見つけることができません。

どんな助けでも大歓迎です。

お時間をいただきありがとうございます。

4

1 に答える 1

1

あなたが参照している:

// Call a helper function to allocate a buffer in which to store the parameter
   // value in character form. The function determines the size of the buffer from
   // the SQL data type and parameter size returned by SQLDescribeParam and returns
   // a pointer to the buffer and the length of the buffer.
   AllocParamBuffer(DataType, ParamSize, &PtrArray[i], &BufferLenArray[i]);

これが行うことは、入力パラメータ (PtrArray[i]) を格納するために malloc で推定されるメモリを割り当てること (つまり、PtrArrayp[i] に割り当てられるメモリの量) です。 )。

この場合に必要な量は、SQLDescribeParameter によって返される DataType と ParamSize によって異なるため、割り当てるメモリの量をどのように計算するかは推測するだけです。推測作業は、すべてのパラメーターが SQL_C_CHAR としてバインドされており、それらの一部が文字列列ではない可能性があるという事実にかかっています。たとえば、日付である可能性があります。

必要なのは、一部のメモリを malloc し、ポインターを PtrArray[i] に割り当て、割り当てられた量を BufferLenArray[i] に設定することだけです。

于 2012-12-03T09:08:02.247 に答える