Atrybut Status ADO

Definicja i użycie

Atrybut Status może zwrócić FieldStatusEnum Wartość, która wskazuje stan obiektu Field. Domyślną wartością jest adFieldOK.

Jeśli aktualizacja się nie powiedzie, zostanie zwrócona błąd, a atrybut Status wskaże kombinację wartości operacji i kod stanu błędu. Atrybut Status każdego Field może być użyty do określenia przyczyny, dla której pole nie zostało dodane, zmodyfikowane lub usunięte.

添加、修改或删除某个 Field 的问题将通过此属性进行报告。例如,如果用户删除一个字段,它将在 Fields 集合中被标记为已删除。如果由于用户试图删除其无权删除的 Field,导致 Update 调用返回错误,那么该字段的 Status 将是 adFieldPermissionDenied 或 adFieldPendingDelete。

语法

objfield.Status

实例

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.Recordset")
rs.open "Select * from orders", conn
response.write(rs.Fields(0).Status)
rs.Close
conn.close
%>

FieldStatusEnum 值

常量 描述
adFieldOK 0 默认。指示已成功添加或删除该字段。
adFieldCantConvertValue 2 指示无法在不损失数据的情况下检索或存储该字段。
adFieldIsNull 3 指示提供者返回了 Null 值。
adFieldTruncated 4 指示在从数据源读取时,变长数据被截断。
adFieldSignMismatch 5 指示由提供者返回的数据值有符号,而 ADO 字段值的数据类型无符号。
adFieldDataOverflow 6 指示从提供者返回的数据超出了字段的数据类型。
adFieldCantCreate 7 指示由于提供者超过了限制(例如允许的字段数量),因此无法添加该字段。
adFieldUnavailable 8 指示在从数据源读取时,提供者无法确定值。例如,行刚刚被创建,列的默认值无法使用,并且尚未指定新值。
adFieldPermissionDenied 9 Indykuje, że pole jest zdefiniowane jako tylko do odczytu, więc nie można go zmodyfikować.
adFieldIntegrityViolation 10 Indykuje, że pole jest obliczane lub pochodne, więc nie można go zmodyfikować.
adFieldSchemaViolation 11 Indykuje, że wartość narusza ograniczenia modelu danych źródłowego pola.
adFieldBadStatus 12 Indykuje, że do dostawcy OLE DB wysłano niewłaściwą wartość stanu. Przyczyną może być dostawca OLE DB 1.0 lub 1.1, lub niewłaściwe połączenie wartości Value i Status.
adFieldDefault 13 Indykuje, że podczas ustawiania danych użyto domyślnej wartości pola.
adFieldIgnore 15 Indykuje, że pole zostało pominięte podczas ustawiania wartości danych w źródle. Dostawca nie ustawił żadnej wartości.
adFieldDoesNotExist 16 Indykuje, że określone pole nie istnieje.
adFieldInvalidURL 17 Indykuje, że URL źródłowy danych zawiera niewłaściwe znaki.
adFieldResourceLocked 18 Indykuje, że dostawca nie może wykonać operacji, ponieważ dane źródłowe są zablokowane przez jeden lub kilka innych aplikacji lub procesów.
adFieldResourceExists 19 Indykuje, że dostawca nie może wykonać operacji, ponieważ obiekt już istnieje w docelowym URL i nie może być nadpisany.
adFieldCannotComplete 20 Indykuje, że serwer wskazany przez URL źródłowy nie może wykonać operacji.
adFieldVolumeNotFound 21 Indykuje, że dostawca nie może zlokalizować objętości wskazanej przez URL.
adFieldOutOfSpace 22 Indykuje, że dostawca nie może uzyskać wystarczającej przestrzeni dyskowej do wykonania operacji przenoszenia lub kopiowania.
adFieldCannotDeleteSource 23 Indykuje, że w operacji przenoszenia drzewo lub poddrzewo zostało przeniesione do nowej pozycji, ale źródło nie może być usunięte.
adFieldReadOnly 24 Indykuje, że pole w źródle danych jest zdefiniowane jako tylko do odczytu.
adFieldResourceOutOfScope 25 Indykuje, że źródłowy lub docelowy URL wykracza poza zakres bieżącej rekordu.
adFieldAlreadyExists 26 Indykuje, że określone pole już istnieje.
adFieldPendingInsert 0x10000 Indykuje operację Append, która wymaga ustawienia stanu. Pole jest oznaczone jako dodane do zbioru Fields po wywołaniu metody Update.
adFieldPendingDelete 0x20000 Wskaźnik, że operacja Delete spowodowała konieczność ustawienia stanu. Pole zostanie oznaczone do usunięcia z kolekcji Fields po wywołaniu metody Update.
adFieldPendingChange 0x40000 Wskaźnik, że pole zostało usunięte i ponownie dodane (możliwe, że różny typ danych), lub że wartość pola, które wcześniej miało stan adFieldOK, została zmieniona. Ostateczny format pola zostanie zmodyfikowany w kolekcji Fields po wywołaniu metody Update.
adFieldPendingUnknown 0x80000 Wskaźnik, że dostawca nie może zidentyfikować, która operacja spowodowała konieczność ustawienia stanu.
adFieldPendingUnknownDelete 0x100000 Wskaźnik, że dostawca nie może zidentyfikować, która operacja spowodowała konieczność ustawienia stanu pola oraz że po wywołaniu metody Update pole zostanie usunięte z kolekcji Fields.