Bagikan melalui


Kelas CDynamicParameterAccessor

Mirip dengan CDynamicAccessor tetapi mendapatkan informasi parameter yang akan diatur dengan memanggil antarmuka ICommandWithParameters .

Sintaks

class CDynamicParameterAccessor : public CDynamicAccessor

Persyaratan

Header: atldbcli.h

Anggota

Metode

Nama Deskripsi
CDynamicParameterAccessor Konstruktor.
GetParam Mengambil data parameter dari buffer.
GetParamCount Mengambil jumlah parameter di aksesor.
GetParamIO Menentukan apakah parameter yang ditentukan adalah parameter input atau output.
GetParamLength Mengambil panjang parameter yang ditentukan yang disimpan dalam buffer.
GetParamName Mengambil nama parameter yang ditentukan.
GetParamStatus Mengambil status parameter yang ditentukan yang disimpan dalam buffer.
GetParamString Mengambil data string dari parameter yang ditentukan yang disimpan dalam buffer.
GetParamType Mengambil jenis data parameter tertentu.
SetParam Mengatur buffer menggunakan data parameter.
SetParamLength Mengatur panjang parameter yang ditentukan yang disimpan dalam buffer.
SetParamStatus Mengatur status parameter yang ditentukan yang disimpan dalam buffer.
SetParamString Mengatur data string dari parameter yang ditentukan yang disimpan dalam buffer.

Keterangan

Penyedia harus mendukung ICommandWithParameters konsumen untuk menggunakan kelas ini.

Informasi parameter disimpan dalam buffer yang dibuat dan dikelola oleh kelas ini. Dapatkan data parameter dari buffer dengan menggunakan GetParam dan GetParamType.

Untuk contoh yang menunjukkan cara menggunakan kelas ini untuk menjalankan prosedur tersimpan SQL Server dan mendapatkan nilai parameter output, lihat kode sampel DynamicConsumer di repositori Microsoft VCSamples di GitHub.

CDynamicParameterAccessor::CDynamicParameterAccessor

Konstruktor.

Sintaks

typedef CDynamicParameterAccessor _ParamClass;
CDynamicParameterAccessor(
   DBBLOBHANDLINGENUM eBlobHandling = DBBLOBHANDLING_DEFAULT,
   DBLENGTH nBlobSize = 8000 )
   : CDynamicAccessor(eBlobHandling, nBlobSize )

Parameter

eBlobHandling
Menentukan bagaimana data BLOB akan ditangani. Nilai defaultnya adalah DBBLOBHANDLING_DEFAULT. Lihat CDynamicAccessor::SetBlobHandling untuk deskripsi nilai DBBLOBHANDLINGENUM.

nBlobSize
Ukuran BLOB maksimum dalam byte; data kolom atas nilai ini diperlakukan sebagai BLOB. Nilai defaultnya adalah 8.000. Lihat CDynamicAccessor::SetBlobSizeLimit untuk detailnya.

Keterangan

Lihat konstruktor CDynamicAccessor::CDynamicAccessor untuk informasi selengkapnya tentang penanganan BLOB.

CDynamicParameterAccessor::GetParam

Mengambil data nonstring untuk parameter tertentu dari buffer parameter.

Sintaks

template <class ctype>bool GetParam(DBORDINAL nParam,
   ctype* pData) const throw();

template <class ctype> bool GetParam(TCHAR* pParamName,
   ctype* pData) const throw();

void* GetParam(DBORDINAL nParam) const throw();

void* GetParam(TCHAR* pParamName) const throw();

Parameter

ctype
Parameter templat yang merupakan jenis data.

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Lihat SetParam untuk contoh.

pParamName
[in] Nama parameter.

pData
[out] Penunjuk ke memori yang berisi data yang diambil dari buffer.

Tampilkan Nilai

Untuk versi yang tidak diintemplasi, arahkan ke memori yang berisi data yang diambil dari buffer. Untuk versi templat, mengembalikan true keberhasilan atau false kegagalan.

Gunakan GetParam untuk mengambil data parameter nonstring dari buffer. Gunakan GetParamString untuk mengambil data parameter string dari buffer.

CDynamicParameterAccessor::GetParamCount

Mengambil jumlah parameter yang disimpan dalam buffer.

Sintaks

DB_UPARAMS GetParamCount() const throw();

Tampilkan Nilai

Jumlah parameter.

CDynamicParameterAccessor::GetParamIO

Menentukan apakah parameter yang ditentukan adalah parameter input atau output.

Sintaks

bool GetParamIO(DBORDINAL nParam,
   DBPARAMIO* pParamIO) const throw();

Parameter

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Lihat SetParam untuk contoh.

pParamIO
Penunjuk ke variabel yang berisi DBPARAMIO jenis (input atau output) dari parameter yang ditentukan. Ini didefinisikan sebagai berikut:

typedef DWORD DBPARAMIO;

enum DBPARAMIOENUM {
    DBPARAMIO_NOTPARAM   = 0,
    DBPARAMIO_INPUT      = 0x1,
    DBPARAMIO_OUTPUT     = 0x2
};

Tampilkan Nilai

Mengembalikan true keberhasilan atau false kegagalan.

CDynamicParameterAccessor::GetParamLength

Mengambil panjang parameter yang ditentukan yang disimpan dalam buffer.

Sintaks

bool GetParamLength(DBORDINAL nParam,
   DBLENGTH* pLength);

DBLENGTH* GetParamLength(DBORDINAL nParam) const throw();

Parameter

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Lihat SetParam untuk contoh.

pLength
[out] Penunjuk ke variabel yang berisi panjang dalam byte parameter yang ditentukan.

Keterangan

Penimpaan true pertama kembali pada keberhasilan atau false kegagalan. Penimpaan kedua menunjuk ke memori yang berisi panjang parameter.

CDynamicParameterAccessor::GetParamName

Mengambil nama parameter yang ditentukan.

Sintaks

LPOLESTR GetParamName(DBORDINAL nParam) const throw();

Parameter

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Lihat SetParam untuk contoh.

Tampilkan Nilai

Nama parameter yang ditentukan.

CDynamicParameterAccessor::GetParamStatus

Mengambil status parameter yang ditentukan yang disimpan dalam buffer.

Sintaks

bool GetParamStatus(DBORDINAL nParam,
   DBSTATUS* pStatus);

DBSTATUS* GetParamStatus(DBORDINAL nParam) const throw();

Parameter

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Lihat SetParam untuk contoh.

pStatus
[out] Penunjuk ke variabel yang berisi status DBSTATUS dari parameter yang ditentukan. Untuk informasi tentang nilai DBSTATUS, lihat Status di Referensi Programmer OLE DB, atau cari DBSTATUS di oledb.h.

Keterangan

Penimpaan true pertama kembali pada keberhasilan atau false kegagalan. Penimpaan kedua menunjuk ke memori yang berisi status parameter yang ditentukan.

CDynamicParameterAccessor::GetParamString

Mengambil data string dari parameter yang ditentukan yang disimpan dalam buffer.

Sintaks

bool GetParamString(DBORDINAL nParam,
   CSimpleStringA& strOutput) throw();

bool GetParamString(DBORDINAL nParam,
   CSimpleStringW& strOutput) throw();

bool GetParamString(DBORDINAL nParam,
   CHAR* pBuffer,
   size_t* pMaxLen) throw();

bool GetParamString(DBORDINAL nParam,
   WCHAR* pBuffer,
   size_t* pMaxLen) throw();

Parameter

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Lihat SetParam untuk contoh.

strOutput
[out] Data string ANSI (CSimpleStringA) atau Unicode (CSimpleStringW) dari parameter yang ditentukan. Anda harus meneruskan parameter jenis CString, misalnya:

CString MyString;
rs.GetParamString(1, MyString);

pBuffer
[out] Penunjuk ke data string ANSI (CHAR) atau Unicode (WCHAR) dari parameter yang ditentukan.

pMaxLen
[out] Penunjuk ke ukuran buffer yang diacu oleh pBuffer (dalam karakter, termasuk penghentian NULL).

Keterangan

Mengembalikan true keberhasilan atau false kegagalan.

Jika pBuffer adalah NULL, metode ini akan mengatur ukuran buffer yang diperlukan dalam memori yang ditunjukkan oleh pMaxLen dan mengembalikan true tanpa menyalin data.

Metode ini akan gagal jika buffer pBuffer tidak cukup besar untuk berisi seluruh string.

Gunakan GetParamString untuk mengambil data parameter string dari buffer. Gunakan GetParam untuk mengambil data parameter nonstring dari buffer.

CDynamicParameterAccessor::GetParamType

Mengambil jenis data parameter tertentu.

Sintaks

bool GetParamType(DBORDINAL nParam,
   DBTYPE* pType) const throw();

Parameter

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Lihat SetParam untuk contoh.

pType
[out] Penunjuk ke variabel yang berisi jenis data parameter yang ditentukan.

Tampilkan Nilai

Mengembalikan true keberhasilan atau false kegagalan.

CDynamicParameterAccessor::SetParam

Mengatur buffer parameter menggunakan data (non-string) yang ditentukan.

Sintaks

template <class ctype>
bool SetParam(DBORDINAL nParam,
   constctype* pData,
   DBSTATUS status = DBSTATUS_S_OK) throw();

template <class ctype>
bool SetParam(TCHAR* pParamName,
   const ctype* pData,
   DBSTATUS status = DBSTATUS_S_OK) throw();

Parameter

ctype
Parameter templat yang merupakan jenis data.

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Contohnya:

WCHAR* wszSQL = L"SELECT * FROM Authors WHERE State='?' AND LName='?'";

CCommand<CDynamicParameterAccessor> rs;
//...
rs.SetParam<LONG>(1, &m_BillingID);
rs.SetParam<CString>(2, &m_strFirstName);

pParamName
[in] Nama parameter.

pData
[di] Penunjuk ke memori yang berisi data yang akan ditulis ke buffer.

status
[di] Status kolom DBSTATUS. Untuk informasi tentang nilai DBSTATUS, lihat Status di Referensi Programmer OLE DB, atau cari DBSTATUS di oledb.h.

Tampilkan Nilai

Mengembalikan true keberhasilan atau false kegagalan.

Gunakan SetParam untuk mengatur data parameter nonstring di buffer. Gunakan SetParamString untuk mengatur data parameter string di buffer.

CDynamicParameterAccessor::SetParamLength

Mengatur panjang parameter yang ditentukan yang disimpan dalam buffer.

Sintaks

bool SetParamLength(DBORDINAL nParam,
   DBLENGTH length);

Parameter

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Lihat SetParam untuk contoh.

length
[di] Panjang dalam byte parameter yang ditentukan.

Keterangan

Mengembalikan true keberhasilan atau false kegagalan.

CDynamicParameterAccessor::SetParamStatus

Mengatur status parameter yang ditentukan yang disimpan dalam buffer.

Sintaks

bool SetParamStatus(DBORDINAL nParam,
   DBSTATUS status);

Parameter

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Lihat SetParam untuk contoh.

status
[di] Status DBSTATUS dari parameter yang ditentukan. Untuk informasi tentang nilai DBSTATUS, lihat Status di Referensi Programmer OLE DB, atau cari DBSTATUS di oledb.h.

Keterangan

Mengembalikan true keberhasilan atau false kegagalan.

CDynamicParameterAccessor::SetParamString

Mengatur data string dari parameter yang ditentukan yang disimpan dalam buffer.

Sintaks

bool SetParamString(DBORDINAL nParam,
   constCHAR* pString,
   DBSTATUS status = DBSTATUS_S_OK) throw();bool SetParamString(DBORDINAL nParam,
   constWCHAR* pString,
   DBSTATUS status = DBSTATUS_S_OK) throw();

Parameter

nParam
[di] Nomor parameter (offset dari 1). Parameter 0 dicadangkan untuk nilai yang dikembalikan. Nomor parameter adalah indeks parameter berdasarkan urutannya dalam panggilan prosedur tersimpan atau SQL. Lihat SetParam untuk contoh.

pString
[di] Penunjuk ke data string ANSI (CHAR) atau Unicode (WCHAR) dari parameter yang ditentukan. Lihat DBSTATUS di oledb.h.

status
[di] Status DBSTATUS dari parameter yang ditentukan. Untuk informasi tentang nilai DBSTATUS, lihat Status di Referensi Programmer OLE DB, atau cari DBSTATUS di oledb.h.

Keterangan

Mengembalikan true keberhasilan atau false kegagalan.

SetParamString akan gagal jika Anda mencoba mengatur string yang lebih besar dari ukuran maksimum yang ditentukan untuk pString.

Gunakan SetParamString untuk mengatur data parameter string di buffer. Gunakan SetParam untuk mengatur data parameter nonstring di buffer.

Lihat juga

Templat Konsumen OLE DB
Referensi Templat Konsumen OLE DB
Kelas CAccessor
Kelas CDynamicAccessor
Kelas CManualAccessor