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.
uyumluluk
Kullanıma Sunulan Sürüm: ODBC 1.0 Standartları Uyumluluğu: ODBC
Özeti
SQLProcedureColumns
Sözdizimi
SQLRETURN SQLProcedureColumns(
SQLHSTMT StatementHandle,
SQLCHAR * CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR * SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR * ProcName,
SQLSMALLINT NameLength3,
SQLCHAR * ColumnName,
SQLSMALLINT NameLength4);
Bağımsız değişken
StatementHandle
[Giriş] Deyim tanıtıcısı.
CatalogName
[Giriş] Yordam kataloğu adı. Sürücü bazı yordamlar için katalogları destekliyorsa ancak diğerleri için desteklemiyorsa (örneğin, sürücü farklı DBMS'lerden veri aldığında), boş bir dize (""), katalogları olmayan yordamları belirtir.
CatalogName dize arama deseni içeremez.
SQL_ATTR_METADATA_ID deyimi özniteliği SQL_TRUE olarak ayarlanırsa, CatalogName tanımlayıcı olarak değerlendirilir ve büyük/küçük harf önemli değildir. SQL_FALSE ise, CatalogName sıradan bir bağımsız değişkendir; kelimenin tam anlamıyla ele alır ve durumu önemlidir. Daha fazla bilgi için bkz.Katalog İşlevleri'nde bağımsız değişkenleri
NameLength1
[Giriş] *CatalogNamekarakterlerinde uzunluk.
SchemaName
[Giriş] Yordam şeması adları için dize arama düzeni. Sürücü bazı yordamlar için şemaları destekliyorsa ancak diğerleri için desteklemiyorsa (örneğin, sürücü farklı DBMS'lerden veri aldığında), boş bir dize (""), şemaları olmayan yordamları belirtir.
SQL_ATTR_METADATA_ID deyimi özniteliği SQL_TRUE olarak ayarlanırsa, schemaname
NameLength2
[Giriş] SchemaName*
ProcName
[Giriş] Yordam adları için dize arama düzeni.
SQL_ATTR_METADATA_ID deyimi özniteliği SQL_TRUE olarak ayarlanırsa, ProcName tanımlayıcı olarak değerlendirilir ve büyük/küçük harf önemli değildir. SQL_FALSE ise, ProcName bir desen değeri bağımsız değişkenidir; kelimenin tam anlamıyla ele alır ve durumu önemlidir.
NameLength3
[Giriş] *ProcNamekarakterlerinde uzunluk.
ColumnName
[Giriş] Sütun adları için dize arama düzeni.
SQL_ATTR_METADATA_ID deyimi özniteliği SQL_TRUE olarak ayarlanırsa, ColumnName tanımlayıcı olarak değerlendirilir ve büyük/küçük harf önemli değildir. SQL_FALSE ise ColumnName
NameLength4
[Giriş] ColumnName*
Döndürür
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR veya SQL_INVALID_HANDLE.
Tanılama
SQLProcedureColumns
| SQLSTATE | Hata | Açıklama |
|---|---|---|
| 01000 | Genel uyarı | Sürücüye özgü bilgilendirici ileti. (İşlev SQL_SUCCESS_WITH_INFO döndürür.) |
| 08S01 | İletişim bağlantısı hatası | sürücü ile sürücünün bağlandığı veri kaynağı arasındaki iletişim bağlantısı, işlev işlenmeden önce başarısız oldu. |
| 24000 | Geçersiz imleç durumu | |
| 40001 | Serileştirme hatası | Başka bir işlemle kaynak kilitlenmesi nedeniyle işlem geri alındı. |
| 40003 | Deyim tamamlama bilinmiyor | İlişkili bağlantı bu işlevin yürütülmesi sırasında başarısız oldu ve işlemin durumu belirlenemiyor. |
| HY000 | Genel hata | Belirli bir SQLSTATE olmayan ve uygulamaya özgü SQLSTATE tanımlanmayan bir hata oluştu. *MessageText arabelleğindeki SQLError tarafından döndürülen hata iletisi, hatayı ve nedenini açıklar. |
| HY001 | Bellek ayırma hatası | Sürücü, işlevin yürütülmesini veya tamamlanmasını desteklemek için gereken belleği ayıramadı. |
| HY008 | İşlem iptal edildi |
StatementHandleiçin zaman uyumsuz işleme etkinleştirildi. İşlev çağrıldı ve yürütmeyi tamamlamadan önce sqlcancel veya İşlev çağrıldı ve yürütmeyi tamamlamadan önce SQLCancel |
| HY009 | Geçersiz null işaretçi kullanımı | SQL_ATTR_METADATA_ID deyimi özniteliği SQL_TRUE olarak ayarlanmış, CatalogName bağımsız değişkeni null işaretçiydi ve SQL_CATALOG_NAME InfoType katalog adlarının desteklendiğini döndürür. (DM) SQL_ATTR_METADATA_ID deyimi özniteliği SQL_TRUE olarak ayarlanmış ve SchemaName , ProcNameveya ColumnName bağımsız değişkeni null işaretçiydi. |
| HY010 | İşlev dizisi hatası | (DM) StatementHandleile ilişkili bağlantı tanıtıcısı için zaman uyumsuz olarak yürütülen bir işlev çağrıldı. SQLProcedureColumns işlevi çağrıldığında bu zaman uyumsuz işlev hala yürütülüyordu. (DM) SQLExecute, SQLExecDirectveya SQLMoreResults, StatementHandle için çağrıldı ve SQL_PARAM_DATA_AVAILABLE döndürdü. Bu işlev, tüm akış parametreleri için veri alınmadan önce çağrıldı. (DM) StatementHandle için zaman uyumsuz olarak yürütülen bir işlev (bu işlev değil) çağrıldı ve bu işlev çağrıldığında hala yürütülüyordu. (DM) SQLExecute, SQLExecDirect, SQLBulkOperationsveya SQLSetPos, StatementHandle için çağrıldı ve SQL_NEED_DATA döndürdü. Bu işlev, tüm yürütme sırasında veri parametreleri veya sütunları için veri gönderilmeden önce çağrıldı. |
| HY090 | Geçersiz dize veya arabellek uzunluğu | (DM) Ad uzunluğu bağımsız değişkenlerinden birinin değeri 0'dan küçüktür ancak SQL_NTS eşit değildir. Ad uzunluğu bağımsız değişkenlerinden birinin değeri, ilgili katalog, şema, yordam veya sütun adı için uzunluk üst sınırını aştı. |
| HY117 | Bilinmeyen işlem durumu nedeniyle bağlantı askıya alındı. Yalnızca bağlantıyı kesme ve salt okunur işlevlere izin verilir. | (DM) Askıya alma durumu hakkında daha fazla bilgi için bkz. SQLEndTran İşlevi. |
| HYC00 | İsteğe bağlı özellik uygulanmadı | Yordam kataloğu belirtildi ve sürücü veya veri kaynağı katalogları desteklemiyor. Bir yordam şeması belirtildi ve sürücü veya veri kaynağı şemaları desteklemiyor. Yordam şeması, yordam adı veya sütun adı için bir dize arama deseni belirtildi ve veri kaynağı bu bağımsız değişkenlerden biri veya daha fazlası için arama desenlerini desteklemiyor. SQL_ATTR_CONCURRENCY ve SQL_ATTR_CURSOR_TYPE deyimi özniteliklerinin geçerli ayarlarının birleşimi sürücü veya veri kaynağı tarafından desteklenmiyordu. SQL_ATTR_USE_BOOKMARKS deyimi özniteliği SQL_UB_VARIABLE olarak, SQL_ATTR_CURSOR_TYPE deyimi özniteliği ise sürücünün yer işaretlerini desteklemediği bir imleç türüne ayarlandı. |
| HYT00 | Zaman aşımı süresi doldu | Veri kaynağı sonuç kümesini döndürmeden önce zaman aşımı süresi doldu. Zaman aşımı süresi SQLSetStmtAttrSQL_ATTR_QUERY_TIMEOUT üzerinden ayarlanır. |
| HYT01 | Bağlantı zaman aşımı süresi doldu | Veri kaynağı isteği yanıtlamadan önce bağlantı zaman aşımı süresi doldu. Bağlantı zaman aşımı süresi SQLSetConnectAttrSQL_ATTR_CONNECTION_TIMEOUT üzerinden ayarlanır. |
| IM001 | Sürücü bu işlevi desteklemiyor | (DM) StatementHandle ile ilişkili sürücü işlevi desteklemiyor. |
| IM017 | Yoklama zaman uyumsuz bildirim modunda devre dışı bırakıldı | Bildirim modeli her kullanıldığında yoklama devre dışı bırakılır. |
| IM018 | SQLCompleteAsync bu tanıtıcıda önceki zaman uyumsuz işlemi tamamlamak için çağrılmadı. | Tanıtıcıdaki önceki işlev çağrısı SQL_STILL_EXECUTING döndürüyorsa ve bildirim modu etkinse, SQLCompleteAsync işlem sonrası işlem yapmak ve işlemi tamamlamak için tanıtıcıda çağrılmalıdır. |
Yorum
Bu işlev genellikle yordam parametreleri ve varsa yordam tarafından döndürülen sonuç kümesini veya kümelerini oluşturan sütunlar hakkındaki bilgileri almak için deyimi yürütmeden önce kullanılır. Daha fazla bilgi için bkz. Yordamlar.
Not
SQLProcedureColumns bir yordam tarafından kullanılan tüm sütunları döndürmeyebilir. Örneğin, bir sürücü yalnızca bir yordam tarafından kullanılan parametrelerle ilgili bilgileri döndürebilir, oluşturduğu sonuç kümesindeki sütunları döndürmeyebilir.
SchemaName, ProcNameve ColumnName bağımsız değişkenleri arama desenlerini kabul eder. Geçerli arama desenleri hakkında daha fazla bilgi için bkz. Desen Değeri Bağımsız Değişkenleri.
Not
ODBC katalog işlevlerinin genel kullanımı, bağımsız değişkenleri ve döndürülen verileri hakkında daha fazla bilgi için bkz. Katalog İşlevleri.
sqlprocedureColumns
Uygulamalar, sonuç kümesinin sonuna göre sürücüye özgü sütunları bağlamalıdır. Daha fazla bilgi için bkz. Katalog İşlevleri tarafından Döndürülen Veriler.
PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME ve COLUMN_NAME sütunlarının gerçek uzunluklarını belirlemek için, bir uygulama SQL_MAX_CATALOG_NAME_LEN, SQL_MAX_SCHEMA_NAME_LEN, SQL_MAX_PROCEDURE_NAME_LEN ve SQL_MAX_COLUMN_NAME_LEN seçenekleriyle SQLGetInfo çağırabilir.
Odbc 3 için aşağıdaki sütunlar yeniden adlandırıldı.x. Uygulamalar sütun numarasına göre bağlandığından, sütun adı değişiklikleri geriye dönük uyumluluğu etkilemez.
| ODBC 2.0 sütunu | ODBC 3.x sütunu |
|---|---|
| PROCEDURE_QUALIFIER | PROCEDURE_CAT |
| YORDAM _OWNER | PROCEDURE_SCHEM |
| KESİNLİK | COLUMN_SIZE |
| UZUNLUK | BUFFER_LENGTH |
| ÖLÇEKLEMEK | DECIMAL_DIGITS |
| KÖK | NUM_PREC_RADIX |
ODBC 3 için SQLProcedureColumns tarafından döndürülen sonuç kümesine aşağıdaki sütunlar eklenmiştir.x:
COLUMN_DEF
DATETIME_CODE
CHAR_OCTET_LENGTH
ORDINAL_POSITION
IS_NULLABLE
Aşağıdaki tabloda sonuç kümesindeki sütunlar listelenir. 19 (IS_NULLABLE) sütununun ötesindeki ek sütunlar sürücü tarafından tanımlanabilir. Bir uygulama, açık bir sıra konumu belirtmek yerine sonuç kümesinin sonundan geriye doğru sayarak sürücüye özgü sütunlara erişim elde etmelidir. Daha fazla bilgi için bkz. Katalog İşlevleri tarafından Döndürülen Veriler.
| Sütun adı | Sütun numarası | Veri tipi | Yorum |
|---|---|---|---|
| PROCEDURE_CAT (ODBC 2.0) | 1 | Varchar | Yordam kataloğu adı; Veri kaynağı için geçerli değilse NULL. Sürücü bazı yordamlar için katalogları destekliyorsa ancak diğerleri için desteklemiyorsa (örneğin, sürücü farklı DBMS'lerden veri aldığında), katalogları olmayan yordamlar için boş bir dize ("") döndürür. |
| PROCEDURE_SCHEM (ODBC 2.0) | 2 | Varchar | Yordam şeması adı; Veri kaynağı için geçerli değilse NULL. Sürücü bazı yordamlar için şemaları destekliyorsa ancak diğerleri için desteklemiyorsa (örneğin, sürücü farklı DBMS'lerden veri aldığında), şemaları olmayan yordamlar için boş bir dize ("") döndürür. |
| PROCEDURE_NAME (ODBC 2.0) | 3 | Varchar değil NULL | Yordam adı. Adı olmayan bir yordam için boş bir dize döndürülür. |
| COLUMN_NAME (ODBC 2.0) | 4 | Varchar değil NULL | Yordam sütun adı. Sürücü, adı olmayan bir yordam sütunu için boş bir dize döndürür. |
| COLUMN_TYPE (ODBC 2.0) | 5 | Smallint not NULL | Yordam sütununu parametre veya sonuç kümesi sütunu olarak tanımlar: SQL_PARAM_TYPE_UNKNOWN: Yordam sütunu, türü bilinmeyen bir parametredir. (ODBC 1.0) SQL_PARAM_INPUT: Yordam sütunu bir giriş parametresidir. (ODBC 1.0) SQL_PARAM_INPUT_OUTPUT: Yordam sütunu bir giriş/çıkış parametresidir. (ODBC 1.0) SQL_PARAM_OUTPUT: Yordam sütunu bir çıkış parametresidir. (ODBC 2.0) SQL_RETURN_VALUE: Yordam sütunu, yordamın dönüş değeridir. (ODBC 2.0) SQL_RESULT_COL: Yordam sütunu bir sonuç kümesi sütunudur. (ODBC 1.0) |
| DATA_TYPE (ODBC 2.0) | 6 | Smallint not NULL | SQL veri türü. Bu bir ODBC SQL veri türü veya sürücüye özgü bir SQL veri türü olabilir. Tarih saat ve aralık veri türleri için bu sütun kısa veri türlerini (örneğin, SQL_TYPE_TIME veya SQL_INTERVAL_YEAR_TO_MONTH) döndürür. Geçerli ODBC SQL veri türlerinin listesi için Ek D: Veri Türleri'nde sql veri türleri |
| TYPE_NAME (ODBC 2.0) | 7 | Varchar değil NULL | Veri kaynağına bağımlı veri türü adı; örneğin, "CHAR", "VARCHAR", "MONEY", "LONG VARBINARY" veya "CHAR ( ) FOR BIT DATA". |
| COLUMN_SIZE (ODBC 2.0) | 8 | Tam sayı | Veri kaynağındaki yordam sütununun sütun boyutu. Sütun boyutunun geçerli olmadığı veri türleri için NULL döndürülür. Duyarlılıkla ilgili daha fazla bilgi için ek D: Veri Türleri'nde Sütun Boyutu, Ondalık Basamaklar, Sekizli Uzunluğu Aktar ve Görüntü Boyutu |
| BUFFER_LENGTH (ODBC 2.0) | 9 | Tam sayı |
SQLGetData veya SQL_C_DEFAULT belirtilirse SQLFetch işlemine aktarılan verilerin bayt cinsinden uzunluğu. Sayısal veriler için bu boyut, veri kaynağında depolanan verilerin boyutundan farklı olabilir. Daha fazla bilgi için Ek D: Veri Türleri'nde Sütun Boyutu, Ondalık Basamaklar, Sekizli Uzunluğu Aktar ve Görüntüleme Boyutu |
| DECIMAL_DIGITS (ODBC 2.0) | 10 | Smallint | Veri kaynağındaki yordam sütununun ondalık basamakları. Ondalık basamakların geçerli olmadığı veri türleri için NULL döndürülür. Ondalık basamaklar hakkında daha fazla bilgi için Ek D: Veri Türleri'nde Sütun Boyutu, Ondalık Basamaklar, Sekizli Uzunluğu Aktar ve Görüntüleme Boyutu |
| NUM_PREC_RADIX (ODBC 2.0) | 11 | Smallint | Sayısal veri türleri için 10 veya 2. 10 ise, COLUMN_SIZE ve DECIMAL_DIGITS değerleri sütun için izin verilen ondalık basamak sayısını verir. Örneğin, DECIMAL(12,5) sütunu 10 NUM_PREC_RADIX, 12 COLUMN_SIZE ve 5 DECIMAL_DIGITS döndürür; FLOAT sütunu 10 NUM_PREC_RADIX, 15 COLUMN_SIZE ve NULL DECIMAL_DIGITS döndürebilir. 2 ise, COLUMN_SIZE ve DECIMAL_DIGITS değerleri sütunda izin verilen bit sayısını verir. Örneğin, FLOAT sütunu 2 NUM_PREC_RADIX, 53 COLUMN_SIZE ve NULL DECIMAL_DIGITS döndürebilir. NUM_PREC_RADIX geçerli olmadığı veri türleri için NULL döndürülür. |
| NULL ATANABILIR (ODBC 2.0) | 12 | Smallint not NULL | Yordam sütununun NULL değeri kabul edip etmediği: SQL_NO_NULLS: Yordam sütunu NULL değerleri kabul etmez. SQL_NULLABLE: Yordam sütunu NULL değerleri kabul eder. SQL_NULLABLE_UNKNOWN: Yordam sütununun NULL değerleri kabul eder mi bilinmez. |
| AÇıKLAMALAR (ODBC 2.0) | 13 | Varchar | Yordam sütununun açıklaması. |
| COLUMN_DEF (ODBC 3.0) | 14 | Varchar | Sütunun varsayılan değeri. Varsayılan değer olarak NULL belirtildiyse, bu sütun null sözcüğüdür, tırnak içine alınmaz. Varsayılan değer kesme olmadan temsil edilemiyorsa, bu sütun tek tırnak içine alınmadan KESİLEN değerini içerir. Varsayılan değer belirtilmediyse, bu sütun NULL olur. COLUMN_DEF değeri, TRUNCATED değerini içermesi dışında yeni bir sütun tanımı oluştururken kullanılabilir. |
| SQL_DATA_TYPE (ODBC 3.0) | 15 | Smallint not NULL | Tanımlayıcının SQL_DESC_TYPE alanında göründüğü gibi SQL veri türünün değeri. Tarih saat ve aralık veri türleri dışında bu sütun DATA_TYPE sütunuyla aynıdır. Tarih saat ve aralık veri türleri için, sonuç kümesindeki SQL_DATA_TYPE alanı SQL_INTERVAL veya SQL_DATETIME döndürür ve SQL_DATETIME_SUB alanı belirli aralık veya tarih saat veri türü için alt kodu döndürür. (Bkz. Ek D: Veri Türleri.) |
| SQL_DATETIME_SUB (ODBC 3.0) | 16 | Smallint | Tarih saat ve aralık veri türleri için alt tür kodu. Diğer veri türleri için bu sütun null döndürür. |
| CHAR_OCTET_LENGTH (ODBC 3.0) | 17 | Tam sayı | Bir karakterin veya ikili veri türü sütununun bayt cinsinden uzunluk üst sınırı. Diğer tüm veri türleri için bu sütun null döndürür. |
| ORDINAL_POSITION (ODBC 3.0) | 18 | Tamsayı NULL değil | Giriş ve çıkış parametreleri için, parametrenin yordam tanımındaki sıralı konumu (parametre sırasını artırarak, 1'den başlayarak). Bir dönüş değeri için (varsa), 0 döndürülür. Sonuç kümesi sütunları için, sonuç kümesindeki sütunun sıralı konumu ve sonuç kümesindeki ilk sütun 1 sayısıdır. Birden çok sonuç kümesi varsa, sütun sıra konumları sürücüye özgü bir şekilde döndürülür. |
| IS_NULLABLE (ODBC 3.0) | 19 | Varchar | SütunDA NUL'ler yoksa "HAYIR". SütunDA DLL'ler bulunabiliyorsa "EVET". Null atanabilirlik bilinmiyorsa bu sütun sıfır uzunluklu bir dize döndürür. Null atanabilirliği belirlemek için ISO kurallarına uyulur. ISO SQL uyumlu DBMS boş bir dize döndüremez. Bu sütun için döndürülen değer NULLABLE sütunu için döndürülen değerden farklıdır. (NULLABLE sütununun açıklamasına bakın.) |
Kod Örneği
Bkz. Yordam Çağrıları.
İlgili İşlevler
| Hakkında bilgi için | Görmek |
|---|---|
| Sonuç kümesindeki bir sütuna arabellek bağlama | SQLBindCol İşlevi |
| Deyim işlemeyi iptal etme | SQLCancel İşlevi |
| Tek bir satır veya veri bloğunu yalnızca ileri yönde getirme | SQLFetch İşlevi |
| Veri bloğunu getirme veya sonuç kümesinde kaydırma | SQLFetchScroll İşlevi |
| Veri kaynağındaki yordamların listesini döndürme | SQLProcedures İşlevi |
Ayrıca Bkz.
ODBC API Başvurusu
ODBC Üst Bilgi Dosyaları