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.
SQLStatistics tek bir tablo ve tabloyla ilişkilendirilmiş dizinler hakkındaki istatistiklerin listesini alır. Sürücü bilgileri sonuç kümesi olarak döndürür.
Uygunluk
Sunulan sürüm: ODBC 1.0 Standartları Uyumluluğu: ISO 92
Sözdizimi
SQLRETURN SQLStatistics(
SQLHSTMT StatementHandle ,
SQLCHAR * CatalogName ,
SQLSMALLINT NameLength1 ,
SQLCHAR * SchemaName ,
SQLSMALLINT NameLength2 ,
SQLCHAR * TableName ,
SQLSMALLINT NameLength3 ,
SQLUSMALLINT Unique ,
SQLUSMALLINT Reserved);
Arguments
StatementHandle
[Giriş] Deyim tanıtıcısı.
Catalogname
[Giriş] Katalog adı. Sürücü bazı tablolar 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 tabloları gösterir.
CatalogName dize arama deseni içeremez.
SQL_ATTR_METADATA_ID deyim özniteliği olarak ayarlanırsaSQL_TRUE, CatalogName bir tanımlayıcı olarak değerlendirilir ve büyük/küçük harf önemli değildir. iseSQL_FALSE, CatalogName sıradan bir bağımsız değişkendir; tam anlamıyla ele alır ve büyük/küçük harf önemlidir. Daha fazla bilgi için bkz. Katalog İşlevleri'ndeki Bağımsız Değişkenler.
NameLength1
[Giriş] CatalogName karakterlerinin uzunluğu.
Şema Adı
[Giriş] Şema adı. Sürücü bazı tablolar 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 tabloları gösterir.
SchemaName dize arama deseni içeremez.
SQL_ATTR_METADATA_ID deyimi özniteliği olarak ayarlanırsa SQL_TRUESchemaName tanımlayıcı olarak değerlendirilir ve büyük/küçük harf önemli değildir. ise SQL_FALSESchemaName sıradan bir bağımsız değişkendir; tam anlamıyla ele alınır ve büyük/küçük harf önemlidir.
NameLength2
[Giriş] SchemaName karakterlerinin uzunluğu.
Tablo Adı
[Giriş] Tablo adı. Bu bağımsız değişken null işaretçi olamaz. TableName dize arama deseni içeremez.
SQL_ATTR_METADATA_ID deyimi özniteliği olarak SQL_TRUEayarlanırsa, TableName bir tanımlayıcı olarak değerlendirilir ve büyük/küçük harf önemli değildir. ise SQL_FALSETableName sıradan bir bağımsız değişkendir; tam anlamıyla ele alır ve büyük/küçük harf önemlidir.
NameLength3
[Giriş] TableName karakterlerinin uzunluğu.
Eşsiz
[Giriş] Dizin türü: SQL_INDEX_UNIQUE veya SQL_INDEX_ALL.
Ayrılmış
[Giriş] Sonuç kümesindeki CARDINALITY ve PAGES sütunlarının önemini gösterir. Aşağıdaki seçenekler yalnızca ve PAGES sütunlarının dönüşünü CARDINALITY etkiler; dizin bilgileri döndürülse CARDINALITY ve PAGES döndürülmezse bile döndürülür.
SQL_ENSURE , sürücünün istatistiği koşulsuz olarak almasını istemektedir. (Yalnızca Açık Grup standardına uyan ve ODBC uzantılarını desteklemeyen sürücüler 'i desteklemez SQL_ENSURE.)
SQL_QUICK, sürücünün yalnızca sunucudan kullanılabilir durumdaysa ve PAGES değerini almasını CARDINALITY istemektedir. Bu durumda, sürücü değerlerin güncel olduğundan emin olmaz. (Open Group standardına yazılan uygulamalar her zaman ODBC 3.x uyumlu sürücülerden davranış alırSQL_QUICK.)
İade
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERRORveya SQL_INVALID_HANDLE.
Diagnostics
veya SQL_SUCCESS_WITH_INFOdöndürdüğünde SQL_ERRORSQLStatistics, handletypeSQL_HANDLE_STMT ve handle ofStatementHandle ile çağrılarak SQLGetDiagRec ilişkili SQLSTATE bir değer elde edilebilir. Aşağıdaki tabloda genellikle tarafından SQLStatistics döndürülen değerler listelenir SQLSTATE ve her biri bu işlev bağlamında açıklanmaktadır; notasyon(DM), Sürücü Yöneticisi tarafından döndürülen her SQLSTATE birinin açıklamalarından öncedir. Her SQLSTATE değerle ilişkili dönüş kodu, aksi belirtilmedikçe şeklindedir SQL_ERROR.
| SQLSTATE | Hata | Description |
|---|---|---|
01000 |
Genel uyarı | Sürücüye özgü bilgilendirici ileti. (İşlev döndürür SQL_SUCCESS_WITH_INFO.) |
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 üzerinde bir imleç açıktı ve SQLFetch veya SQLFetchScroll çağrılmıştı. Bu hata, döndürdüyse SQLFetch veya SQLFetchScroll döndürmediyse SQL_NO_DATA Sürücü Yöneticisi tarafından döndürülür ve döndürdüyse SQLFetch sürücü SQLFetchScroll tarafından döndürülür SQL_NO_DATA.StatementHandle üzerinde bir imleç açıktı, ancak SQLFetchSQLFetchScroll ç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 olmayan ve uygulamaya özgü SQLSTATESQLSTATE tanımlanmayan bir hata oluştu.
*MessageText arabelleğinde tarafından SQLGetDiagRec 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, yürütmeyi SQLCancel tamamlamadan önce veya SQLCancelHandleStatementHandle üzerinde çağrıldı ve ardından işlev StatementHandle üzerinde yeniden çağrıldı.İşlev çağrılır ve yürütme SQLCancel tamamlanmadan önce veya SQLCancelHandle çok iş parçacıklı bir uygulamadaki farklı bir iş parçacığından StatementHandle üzerinde çağrılır. |
HY009 |
Geçersiz null işaretçi kullanımı |
TableName bağımsız değişkeni null işaretçiydi.SQL_ATTR_METADATA_ID deyimi özniteliği olarak SQL_TRUEayarlandı, CatalogName bağımsız değişkeni null işaretçiydi ve SQL_CATALOG_NAMEInfoType, katalog adlarının desteklendiğini döndürür.(DM) SQL_ATTR_METADATA_ID Deyim özniteliği olarak SQL_TRUEayarlandı ve SchemaName bağımsız değişkeni null bir 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ı. İşlev çağrıldığında SQLStatistics bu zaman uyumsuz işlev hala yürütülüyordu.(DM) SQLExecute, SQLExecDirectveya SQLMoreResultsdeyimi için çağrıldı ve döndürüldü SQL_PARAM_DATA_AVAILABLE. 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 SQLSetPosdeyimi için çağrıldı ve döndürüldü SQL_NEED_DATA. 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) Ad uzunluğu bağımsız değişkenlerinden birinin değeri 0'dan küçüktür ancak değerine SQL_NTSeşit değildir.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ı. |
HY100 |
Benzersizlik seçeneği türü aralık dışında | (DM) Geçersiz bir Benzersiz değer belirtildi. |
HY101 |
Doğruluk seçeneği türü aralık dışında | (DM) Geçersiz bir Ayrılmış değer belirtildi. |
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 belirtildi ve sürücü veya veri kaynağı katalogları desteklemiyor. Bir şema belirtildi ve sürücü veya veri kaynağı şemaları desteklemiyor. ve SQL_ATTR_CURSOR_TYPE deyimi özniteliklerinin geçerli ayarlarının SQL_ATTR_CONCURRENCY birleşimi sürücü veya veri kaynağı tarafından desteklenmiyordu.deyim SQL_ATTR_USE_BOOKMARKS özniteliği olarakSQL_UB_VARIABLESQL_ATTR_CURSOR_TYPE, deyim özniteliği ise sürücünün yer işaretlerini desteklemediği bir imleç türüne ayarlanmıştır. |
HYT00 |
Zaman aşımı süresi doldu | Veri kaynağı istenen sonuç kümesini döndürmeden önce sorgu zaman aşımı süresi doldu. Zaman aşımı süresi aracılığıyla SQLSetStmtAttrSQL_ATTR_QUERY_TIMEOUTayarlanı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 aracılığıyla SQLSetConnectAttrSQL_ATTR_CONNECTION_TIMEOUTayarlanır. |
IM001 |
Sürücü bu işlevi desteklemiyor | (DM) StatementHandle ile ilişkilendirilmiş 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ı döndürülüyorsa SQL_STILL_EXECUTING ve bildirim modu etkinse, SQLCompleteAsync işlem sonrası işlemi yapmak ve işlemi tamamlamak için tanıtıcıda çağrılmalıdır. |
Comments
SQLStatistics, ve tarafından sıralanmış NON_UNIQUEINDEX_NAMETYPEINDEX_QUALIFIERstandart sonuç kümesi olarak tek bir tablo hakkındaki bilgileri döndürür.ORDINAL_POSITION Sonuç kümesi, tabloya ilişkin istatistik bilgilerini (sonuç kümesinin CARDINALITY ve PAGES sütunlarında) her dizinle ilgili bilgilerle birleştirir. Bu bilgilerin nasıl kullanılabileceğini öğrenmek için bkz. Katalog Verilerinin Kullanımları.
, , TABLE_SCHEMTABLE_NAMEve COLUMN_NAME sütunlarının TABLE_CATgerçek uzunluklarını belirlemek için, bir uygulama , , SQL_MAX_SCHEMA_NAME_LENSQL_MAX_TABLE_NAME_LENve SQL_MAX_COLUMN_NAME_LEN seçenekleriyle SQL_MAX_CATALOG_NAME_LENçağrı SQLGetInfo yapabilir.
Uyarı
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.
Odbc 3.x için aşağıdaki sütunlar yeniden adlandırıldı. 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 |
|---|---|
TABLE_QUALIFIER |
TABLE_CAT |
TABLE_OWNER |
TABLE_SCHEM |
SEQ_IN_INDEX |
ORDINAL_POSITION |
COLLATION |
ASC_OR_DESC |
Aşağıdaki tabloda sonuç kümesindeki sütunlar listelenir. 13 (FILTER_CONDITION ) sütununun ötesindeki 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 elde etmelidir. 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 | İstatistik veya dizinin uygulandığı tablonun katalog adı; NULL veri kaynağı için geçerli değilse. Sürücü bazı tablolar için katalogları destekliyorsa ancak diğerleri için desteklemiyorsa (örneğin, sürücü farklı DBMS'lerden veri aldığında), katalogları olmayan tablolar için boş bir dize ("") döndürür. |
TABLE_SCHEM (ODBC 1.0) |
2 | varchar | İstatistik veya dizinin uygulandığı tablonun şema adı; NULL veri kaynağı için geçerli değilse. Sürücü bazı tablolar için şemaları destekliyorsa ancak diğerleri için desteklemiyorsa (örneğin, sürücü farklı DBMS'lerden veri aldığında), şemaları olmayan tablolar için boş bir dize ("") döndürür. |
TABLE_NAME (ODBC 1.0) |
3 |
varchar değil NULL |
İstatistik veya dizinin uygulandığı tablonun tablo adı. |
NON_UNIQUE (ODBC 1.0) |
4 | smallint | Dizinin yinelenen değerlere izin verip vermediğini gösterir:SQL_TRUE dizin değerleri nonunique olabilir.SQL_FALSE dizin değerlerinin benzersiz olması gerekiyorsa.NULL ise TYPESQL_TABLE_STATdöndürülür. |
INDEX_QUALIFIER (ODBC 1.0) |
5 | varchar | dizin adını bir yaparak DROP INDEXnitelemek için kullanılan tanımlayıcı, NULL veri kaynağı tarafından bir dizin niteleyicisi desteklenmiyorsa veya ise TYPESQL_TABLE_STATdöndürülür. Bu sütunda null olmayan bir değer döndürülürse, bir DROP INDEX deyimdeki dizin adını niteleme amacıyla kullanılmalıdır; aksi takdirde, TABLE_SCHEM dizin adını nitelemek için kullanılmalıdır. |
INDEX_NAME (ODBC 1.0) |
6 | varchar | Dizin adı; NULL ise TYPESQL_TABLE_STATdöndürülür. |
TYPE (ODBC 1.0) |
7 |
smallint değil NULL |
Döndürülen bilgi türü:SQL_TABLE_STAT tablo CARDINALITY (veya PAGES sütununda) için bir istatistik gösterir.SQL_INDEX_BTREE bir B Ağacı dizinini gösterir.SQL_INDEX_CLUSTERED kümelenmiş dizini gösterir.SQL_INDEX_CONTENT bir içerik dizinini gösterir.SQL_INDEX_HASHED karma bir dizini gösterir.SQL_INDEX_OTHER başka bir dizin türünü gösterir. |
ORDINAL_POSITION (ODBC 1.0) |
8 | smallint | Dizindeki sütun dizisi numarası (1 ile başlayarak); NULL ise TYPESQL_TABLE_STATdöndürülür. |
COLUMN_NAME (ODBC 1.0) |
9 | varchar | Sütun adı. Sütun gibi SALARY + BENEFITSbir ifadeyi temel alırsa, ifade döndürülür; ifade belirlenemezse boş bir dize döndürülür.
NULL ise TYPESQL_TABLE_STATdöndürülür. |
ASC_OR_DESC (ODBC 1.0) |
10 | char(1) | Sütunun sıralama sırası: Artan için "A"; Azalan için "D" ; NULL , sütun sıralama dizisi veri kaynağı tarafından desteklenmiyorsa veya ise TYPESQL_TABLE_STATdöndürülür. |
CARDINALITY (ODBC 1.0) |
11 | integer | Tablo veya dizinin kardinalitesi; ise TYPESQL_TABLE_STATtablodaki satır sayısı ; değilse dizindeki TYPESQL_TABLE_STATbenzersiz değerlerin sayısı; NULL değer veri kaynağından kullanılamıyorsa döndürülür. |
PAGES (ODBC 1.0) |
12 | integer | Dizini veya tabloyu depolamak için kullanılan sayfa sayısı; değeri TYPESQL_TABLE_STATveri kaynağından kullanılamıyorsa veya veri kaynağı için geçerli değilse, tablo için sayfa sayısı ; değilse dizinin NULLTYPESQL_TABLE_STATsayfa sayısı döndürülür. |
FILTER_CONDITION (ODBC 2.0) |
13 | varchar | Dizin filtrelenmiş bir dizinse, bu filtre koşuludur; örneğin SALARY > 30000, filtre koşulu belirlenemezse, bu boş bir dizedir.NULL dizin filtrelenmiş bir dizin değilse, dizinin filtrelenmiş bir dizin TYPESQL_TABLE_STATmi yoksa olup olmadığı belirlenemez. |
Sonuç kümesindeki satır bir tabloya karşılık geliyorsa, sürücü olarak ayarlanır TYPE ve , INDEX_QUALIFIER, INDEX_NAME, ORDINAL_POSITION, COLUMN_NAMEve ASC_OR_DESCNULLolarak ayarlanırNON_UNIQUE.SQL_TABLE_STAT Veri kaynağından kullanılabilir veya PAGES kullanılamıyorsaCARDINALITY, sürücü bunları olarak NULLayarlar.
Kod örneği
Benzer bir işlevin kod örneği için bkz. SQLColumns İşlevi.
İlgili işlevler
| Hakkında bilgi için | Article |
|---|---|
| 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 |
| Yabancı anahtar sütunlarını döndürme | SQLForeignKeys İşlevi |
| Birincil anahtarın sütunlarını döndürme | SQLPrimaryKeys İşlevi |