Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Server Native Client ODBC sürücüsü, yalnızca uygulama satır tanımlayıcısı (IRD) için sürücüye özgü tanımlayıcı alanlarını sunar. IRD içinde, SQL Server tanımlayıcı alanları sürücüye özgü sütun öznitelikleri aracılığıyla referans verilir. Mevcut sürücüye özgü tanımlayıcı alanlarının tam listesi hakkında bilgi için SQLColAttribute'a bakınız.
Sütun tanımlayıcı dizelerini içeren tanımlayıcı alanları genellikle sıfır uzunluklu dizelerdir. Tüm SQL Server'a özgü tanımlayıcı alan değerleri yalnızca okunabilir.
SQLColAttribute ile alınan özellikler gibi, satır seviyesindeki öznitelikleri bildiren tanımlayıcı alanları (örneğin SQL_CA_SS_COMPUTE_ID) sonuç kümesindeki tüm sütunlar için raporlanır.
SQLGetDescField ve Table-Valued Parametreleri
SQLGetDescField, tablo değerli parametrelerin ve tablo değerli parametre sütunlarının genişletilmiş nitelikleri için değerler elde etmek için kullanılabilir. Tablo değerli parametreler hakkında daha fazla bilgi için bkz. Table-Valued Parametreler (ODBC).
Gelişmiş Tarih ve Saat Özellikleri için SQLGetDescField Desteği
Yeni tarih/saat tipleriyle mevcut tanımlayıcı alanları hakkında bilgi için Parametre ve Sonuç Metadata'ya bakınız.
Daha fazla bilgi için bkz. Tarih ve Saat Geliştirmeleri (ODBC).
SQL Server 2012'den (11.x) itibaren, uygulamanız ODBC 3.8 kullanıyorsa, SQLGetDescField SQL_C_SS_TIME2 (zaman türleri için) veya SQL_C_SS_TIMESTAMPOFFSET (datetimeoffset için) yerine SQL_C_BINARY döndürebilir.
Büyük CLR UDT'ler için SQLGetDescField desteği
SQLGetDescField , büyük CLR kullanıcı tanımlı türleri (UDT'leri) destekler. Daha fazla bilgi için bkz. Büyük CLR User-Defined Türleri (ODBC).
SQLGetDescField Support for Sparse Columns
SQLGetDescField, yeni IRD alanını sorgulamak SQL_CA_SS_IS_COLUMN_SET bir sütunun column_set sütun olup olmadığını belirlemek için kullanılabilir.
Daha fazla bilgi için Sparse Columns Support (ODBC) bölümüne bakınız.
Example
typedef struct tagCOMPUTEBYLIST
{
SQLSMALLINT nBys;
SQLSMALLINT aByList[1];
} COMPUTEBYLIST;
typedef COMPUTEBYLIST* PCOMPUTEBYLIST;
SQLHDESC hIRD;
SQLINTEGER cbIRD;
SQLINTEGER nSet = 0;
// . . .
// Execute a statement that contains a COMPUTE clause,
// then get the descriptor handle of the IRD and
// get some IRD values.
SQLGetStmtAttr(g_hStmt, SQL_ATTR_IMP_ROW_DESC,
(SQLPOINTER) &hIRD, sizeof(SQLHDESC), &cbIRD);
// For statement-wide column attributes, any
// descriptor record will do. You know that 1 exists,
// so use it.
SQLGetDescField(hIRD, 1, SQL_CA_SS_NUM_COMPUTES,
(SQLPOINTER) &nComputes, SQL_IS_INTEGER, &cbIRD);
if (nSet == 0)
{
SQLINTEGER nOrderID;
printf_s("Normal result set.\n");
for (nCol = 0; nCol < nCols; nCol++)
{
SQLGetDescField(hIRD, nCol+1,
SQL_CA_SS_COLUMN_ORDER,
(SQLPOINTER) &nOrderID, SQL_IS_INTEGER,
&cbIRD);
if (nOrderID != 0)
{
printf_s("Col in ORDER BY, pos: %ld",
nOrderID);
}
printf_s("\n");
}
printf_s("\n");
}
else
{
PCOMPUTEBYLIST pByList;
SQLSMALLINT nBy;
SQLINTEGER nColID;
printf_s("Computed result set number: %lu\n",
nSet);
SQLGetDescField(hIRD, 1, SQL_CA_SS_COMPUTE_BYLIST,
(SQLPOINTER) &pByList, SQL_IS_INTEGER,
&cbIRD);
if (pByList != NULL)
{
printf_s("Clause ordered by columns: ");
for (nBy = 0; nBy < pByList->nBys; )
{
printf_s("%u", pByList->aByList[nBy]);
nBy++;
if (nBy == pByList->nBys)
{
printf_s("\n");
}
else
{
printf_s(", ");
}
}
}
else
{
printf_s("Compute clause set not ordered.\n");
}
for (nCol = 0; nCol < nCols; nCol++)
{
SQLGetDescField(hIRD, nCol+1,
SQL_CA_SS_COLUMN_ID, (SQLPOINTER) &nColID,
SQL_IS_INTEGER, &cbIRD);
printf_s("ColumnID: %lu, nColID);
}
printf_s("\n");
}
if (SQLMoreResults(g_hStmt) == SQL_SUCCESS)
{
// Determine the result set indicator.
SQLGetDescField(hIRD, 1, SQL_CA_SS_COMPUTE_ID,
(SQLPOINTER) &nSet, SQL_IS_INTEGER, &cbIRD);
}