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. |