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.
Uygunluk
Tanıtılan Sürüm: ODBC 1.0 Standartlar Uyumu: ODBC
Özet
SQLColumnPrivileges , belirtilen tablo için sütunlar ve ilgili ayrıcalıklar listesini döndürür. Sürücü, bilgiyi belirlenen StatementHandle üzerinde sonuç seti olarak döndürür.
Syntax
SQLRETURN SQLColumnPrivileges(
SQLHSTMT StatementHandle,
SQLCHAR * CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR * SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR * TableName,
SQLSMALLINT NameLength3,
SQLCHAR * ColumnName,
SQLSMALLINT NameLength4);
Arguments
StatementHandle
[Giriş] Deyim tanıtıcısı.
Catalogname
[Giriş] Katalog adı. Bir sürücü bazı kataloglar için isimleri desteklerken diğerleri için desteklemiyorsa, örneğin sürücü farklı DBMS'lerden veri alırken, boş bir dizi ("") isimleri olmayan katalogları gösterir.
CatalogName bir dizi arama deseni içeremez.
Eğer SQL_ATTR_METADATA_ID ifadesi özniteliği SQL_TRUE olarak ayarlanmışsa, CatalogName tanımlayıcı olarak ele alınır ve durumu anlamlı değildir. Eğer SQL_FALSE ise, CatalogName sıradan bir argümandır; kelime kelimesi kelimesine ele alınır ve durumu önemlidir. Daha fazla bilgi için bkz. Katalog İşlevleri'ndeki Bağımsız Değişkenler.
NameLength1
[Giriş] *CatalogName'nin karakterlerindeki uzunluk.
Şema Adı
[Giriş] Şema adı. Bir sürücü bazı tablolar için şemaları desteklerken diğerleri için desteklemiyorsa, örneğin sürücü farklı DBMS'lerden veri alırken, boş bir dizi ("") şema olmayan tabloları gösterir.
SchemaName bir dizi arama deseni içeremez.
Eğer SQL_ATTR_METADATA_ID ifadesi özniteliği SQL_TRUE olarak ayarlanmışsa, SchemaName tanımlayıcı olarak kabul edilir. Eğer SQL_FALSE ise, SchemaName sıradan bir argümandır; kelime kelimesi kelimesine ele alınır ve durumu önemlidir.
NameLength2
[Giriş] *SchemaName'nin karakterlerindeki uzunluk.
Tablo Adı
[Giriş] Tablo adı. Bu argüman bir null işaretçi olamaz.
TableName bir dizi arama deseni içeremez.
Eğer SQL_ATTR_METADATA_ID ifadesi özniteliği SQL_TRUE olarak ayarlanmışsa, TableName tanımlayıcı olarak ele alınır ve durumu anlamlı değildir. Eğer SQL_FALSE ise, TableName sıradan bir argümandır; kelime kelimesi kelimesine ele alınır ve durumu önemlidir.
NameLength3
[Giriş] *TableName'in karakterlerindeki uzunluk.
ColumnName
[Giriş] Sütun adları için dizi arama deseni.
SQL_ATTR_METADATA_ID ifadesi özniteliği SQL_TRUE olarak ayarlanmışsa, ColumnName tanımlayıcı olarak ele alınır ve durumu anlamlı değildir. Eğer SQL_FALSE ise, ColumnName bir desen değeri argümanıdır; kelime kelimesi kelimesine ele alınır ve durumu önemlidir.
NameLength4
[Giriş] *ColumnName'in karakterlerindeki uzunluk.
İadeler
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR ya da SQL_INVALID_HANDLE.
Diagnostics
SQLColumnPrivileges SQL_ERROR veya SQL_SUCCESS_WITH_INFO döndürdüğünde, ilişkili bir SQLSTATE değeri, SQL_HANDLE_STMT HandleType ve HandleType of StatementHandle ile SQLGetDiagRec çağrılarak elde edilebilir. Aşağıdaki tablo, SQLColumnPrivileges tarafından sıkça duygulanan SQLSTATE değerlerini listeler ve her birini bu fonksiyon bağlamında açıklar; "(DM)" gösterimi, Sürücü Yöneticisi tarafından döndürülen SQLSTATE açıklamalarından önce gelir. Aksi belirtilmediği sürece, her SQLSTATE değeriyle ilişkili dönüş kodu SQL_ERROR.
| SQLSTATE | Error | Description |
|---|---|---|
| 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 |
StatementHandle'da bir imleç açıktı ve SQLFetch veya SQLFetchScroll çağrılmıştı.
BU hata, SQLFetch veya SQLFetchScroll SQL_NO_DATA döndürmediyse Sürücü Yöneticisi tarafından döndürülür ve SQLFetch veya SQLFetchScroll SQL_NO_DATA döndürdüyse sürücü tarafından döndürülür. StatementHandle'da bir imleç açıktı, ancak SQLFetch veya SQLFetchScroll çağrılmamıştı. |
| 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ğinde SQLGetDiagRec 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 |
StatementHandle için zaman uyumsuz işleme etkinleştirildi. İşlev çağrıldı ve yürütme tamamlanmadan önce StatementHandle üzerinde SQLCancel veya SQLCancelHandle çağrıldı. Ardından işlev StatementHandle üzerinde yeniden çağrıldı. İşlev çağrıldı ve yürütme tamamlanmadan önce, çok iş parçacıklı bir uygulamadaki farklı bir iş parçacığından StatementHandle üzerinde SQLCancel veya SQLCancelHandle çağrıldı. |
| HY009 | Geçersiz null işaretçi kullanımı |
TableName bağımsız değişkeni null işaretçiydi. SQL_ATTR_METADATA_ID ifadesi özniteliği SQL_TRUE olarak ayarlanmıştı, CatalogName argümanı null işaretçiydi ve SQL_CATALOG_NAME InfoType katalog adlarının desteklendiğini döndürdü. (DM) SQL_ATTR_METADATA_ID ifadesi özniteliği SQL_TRUE olarak ayarlanmıştı ve SchemaName veya ColumnName argümanı null işaretçiydi. |
| HY010 | İşlev dizisi hatası | (DM) StatementHandle ile ilişkili bağlantı tanıtıcısı için zaman uyumsuz olarak yürütülen bir işlev çağrıldı. Bu asenkron fonksiyon çağrıldığında hâlâ çalışıyordu. (DM) SQLExecute, SQLExecDirect veya 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, SQLBulkOperations veya 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ı. |
| HY013 | Bellek yönetimi hatası | Büyük olasılıkla düşük bellek koşulları nedeniyle, temel alınan bellek nesnelerine erişilemediğinden işlev çağrısı işlenemedi. |
| HY090 | Geçersiz dize veya arabellek uzunluğu | (DM) İsim uzunluğu argümanlarından birinin değeri 0'dan küçüktü ancak SQL_NTS'ye eşit değildi. |
| Ad uzunluğu bağımsız değişkenlerinden birinin değeri, karşılık gelen ad için uzunluk üst sınırını aştı. ("Yorumlar" bölümüne bakınız.) | ||
| 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 alınma durumu hakkında daha fazla bilgi için bkz. SQLEndTran İşlevi. |
| HYC00 | İsteğe bağlı özellik uygulanmadı | Bir katalog adı belirtilmiş ve sürücü veya veri kaynağı katalogları desteklememektedir. Bir şema adı belirtilmiş ve sürücü ya da veri kaynağı şemaları desteklemiyor. Sütun adı için bir dizi arama deseni belirtilmiş olup, veri kaynağı bu argüman için arama desenlerini desteklemez. SQL_CONCURRENCY ve SQL_CURSOR_TYPE özetleme özelliklerinin mevcut 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 sorgu zaman aşımı süresi doldu. Zaman aşımı süresi SQLSetStmtAttr, SQL_ATTR_QUERY_TIMEOUT aracılığıyla 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 SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT aracılığıyla 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 etkinleştirildiyse, son işlemeyi yapmak ve işlemi tamamlamak için tanıtıcıda SQLCompleteAsync çağrılmalıdır. |
Comments
SQLColumnPrivileges sonuçları standart bir sonuç kümesi olarak, TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME ve PRIVILEGE ile sıralanmış olarak döndürür.
Note
SQLColumnPrivileges tüm sütunlar için ayrıcalıkları döndürmeyebilir. Örneğin, bir sürücü, Oracle ROWID gibi sözde sütunlar için ayrıcalıklar hakkında bilgi döndürmeyebilir. Uygulamalar, SQLColumnPrivileges tarafından döndürülse de döndürülmemesine bakılmaksızın herhangi bir geçerli sütunu kullanabilir.
VARCHAR sütunlarının uzunlukları tabloda gösterilmemiştir; Gerçek uzunluklar veri kaynağına bağlıdır. CATALOG_NAME, SCHEMA_NAME, TABLE_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_TABLE_NAME_LEN ve SQL_MAX_COLUMN_NAME_LEN seçenekleriyle SQLGetInfo çağırabilir.
Note
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.
Aşağıdaki sütunlar ODBC 3 için yeniden adlandırılmıştır. x. Sütun adı değişiklikleri, uygulamalar sütun numarasına göre bağlandığı için geriye doğru uyumluluğu etkilemez.
| ODBC 2.0 sütunu | ODBC 3. x sütunu |
|---|---|
| TABLE_QUALIFIER | TABLE_CAT |
| TABLO_SAHİBİ | TABLO_ŞEMASI |
Aşağıdaki tabloda sonuç kümesindeki sütunlar listelenir. 8. sütun (IS_GRANTABLE) ötesinde ek sütunlar sürücü tarafından tanımlanabilir. Bir uygulama, açık bir sıralı konum belirtmek yerine sonuç kümesinin sonundan geri sayarak sürücüye özgü sütunlara erişim sağlamalıdır. Daha fazla bilgi için bkz. Katalog İşlevleri Tarafından Döndürülen Veriler.
| Sütun adı | Sütun numarası | Veri türü | Comments |
|---|---|---|---|
| TABLE_CAT (ODBC 1.0) | 1 | Varchar | Katalog tanımlayıcısı; Veri kaynağına uygulanmıyorsa NULL. Bir sürücü bazı tablolar için katalogları desteklerken diğerleri için desteklemiyorsa, örneğin sürücü farklı DBMS'lerden veri aldığında, katalogları olmayan tablolar için boş bir dizi ("") döner. |
| TABLE_SCHEM (ODBC 1.0) | 2 | Varchar | Şema tanımlayıcısı; Veri kaynağına uygulanmıyorsa NULL. Bir sürücü bazı tablolar için şemaları desteklerken diğerleri için desteklemiyorsa, örneğin sürücü farklı DBMS'lerden veri alırsa, şema olmayan tablolar için boş bir diziyi ("") döndürür. |
| TABLE_NAME (ODBC 1.0) | 3 | Varchar NULL değil | Tablo tanımlayıcısı. |
| COLUMN_NAME (ODBC 1.0) | 4 | Varchar NULL değil | Sütun adı. Sürücü, adı olmayan bir sütun için boş bir diziyi döndürür. |
| GRANTOR (ODBC 1.0) | 5 | Varchar | Ayrıcalığı veren kullanıcının adı; Veri kaynağına uygulanmıyorsa NULL. GRANTEE sütunundaki değerin nesnenin sahibi olduğu tüm satırlar için, GRANTOR sütunu "_SYSTEM" olur. |
| HIBE ALAN (ODBC 1.0) | 6 | Varchar NULL değil | Ayrıcalığın verildiği kullanıcının adı. |
| İYYAZ (ODBC 1.0) | 7 | Varchar NULL değil | Sütun ayrıcalığını belirler. Aşağıdaki (veya uygulama olarak tanımlandığında veri kaynağı tarafından desteklenen diğerleri) olabilir: SELECT: Hibs alan kişi, sütun için veri almasına izin verilir. INSERT: Bağışlayıcı, sütun için yeni satırlarda veri sağlamasına izin verilir ve bu satırlar ilgili tabloya eklenir. UPDATE: Hibeye veriyi sütundaki verileri güncelleme izni verilir. REFERANSLAR: Bağışlanan, bir kısıtlama içindeki sütuna atıfta bulunmasına izin verilir (örneğin, tekiz, referanslı veya tablo kontrolü kısıtlaması). |
| IS_GRANTABLE (ODBC 1.0) | 8 | Varchar | Bağışlayanın diğer kullanıcılara ayrıcalık vermesine izin verilip verilmediğini belirtir; "EVET", "HAYIR" veya "NULL" (NULL) bilinmiyorsa veya veri kaynağına uygulanmıyorsa geçerlidir. Bir ayrıcalık ya verilebilir ya da verilmez, ama ikisi birden geçerli değildir. SQLColumnPrivileges tarafından döndürülen sonuç kümesi, IS_GRANTABLE sütun hariç tüm sütunların aynı değeri içeren iki satır içermez. |
Kod Örneği
Benzer bir işlevin kod örneği için bkz. SQLColumns İşlevi.
İlgili Fonksiyonlar
| Hakkında bilgi için | Bkz: |
|---|---|
| Sonuç kümesindeki bir sütuna arabellek bağlama | SQLBindCol İşlevi |
| Deyim işlemeyi iptal etme | SQLCancel İşlevi |
| Bir tablo veya tablodaki sütunları geri göndermek | SQLColumns Fonksiyonu |
| Veri bloğunu getirme veya sonuç kümesinde kaydırma | SQLFetchScroll İşlevi |
| Birden çok veri satırı getirme | SQLFetch İşlevi |
| Bir tablo veya tablolar için ayrıcalıkların geri verilmesi | SQLTablePrivileges Function |
| Bir veri kaynağında tablo listesini döndürmek | SQLTables Fonksiyonu |