TimberLandChapelのTech Blog

TimberLandChapel が提供する技術Tips,思いつきメモ,雑感ブログです。
Office 互換リボン Release 1.0 をリリースしました。

購読

今期のアンケート

INETAJ

Microsoft

SQL Server

TLC.com

クリエイティブ・コモンズ

情報処理関係官公庁

【ADO】ADO 関係の定数に関する資料の発掘

古い ADO 関係のオプションに関する資料を発掘したので Up しておきます。

Execute メソッド(ADO Command)関連定数

Options:CommandText プロパティを評価する方法を指定
CommandTypeEnum と ExecuteOptionEnum の組み合わせで指定できる。

赤字部分はドキュメントに記載されていない補足部分。

定数名 数値 16進 説明
CommandTypeEnum adCmdText 1 &H1 プロバイダが CommandText をコマンドのテキスト定義として評価する必要があることを示します。
adCmdTable 2 &H2 CommandText で名前を付けられたテーブルの全レコードを返すために ADO が SQL クエリを生成する、必要があることを示します。
adCmdStoredProc 4 &H4 プロバイダが CommandText をストアド プロシージャとして評価する必要があることを示します。
adCmdUnknown 8 &h8 CommandText のコマンドの種類が不明であることを示します。
adCmdFile 256 &H100 持続的 (保存された) Recordset オブジェクトをが CommandTextで名前を付けれたファイルから復元する必要があることを示します。
adCmdTableDirect 512 &H200 プロバイダが CommandText で名前を付けられたテーブルの全レコードを返す必要があることを示します。
ExecuteOptionEnum adAsyncExecute 16 &H10 コマンドを非同期実行することを指定します。
adAsyncFetch 32 &H20 CacheSize プロパティで指定された初期数量が取り出された後、残りのレコードを非同期的に取り出す必要があることを示します。
adExecuteNonBlocking 64 &H40 undocumented
adExecuteNoRecords 128 &H80 undocumented
adExecuteStream 1024 &H400 undocumented

Open メソッド(ADO Recordset)関連定数

CursorType:Recordset を開く際にプロバイダが使うカーソルタイプを指定
CursorTypeEnum で指定できる。

赤字部分はドキュメントに記載されていない補足部分。

定数名 数値 16進 説明
adOpenForwardOnly 0 &H0 デフォルトの値です。前方スクロールタイプカーソルを開きます。
adOpenKeyset 1 &H1 キーセットカーソルを開きます。
adOpenDynamic 2 &H2 動的カーソルを開きます。
adOpenStatic 3 &H3 静的カーソルを開きます。

LockType:Recordset を開く際にプロバイダが使うロックタイプを指定
LockTypeEnum で指定できる。

赤字部分はドキュメントに記載されていない補足部分。

定数名 数値 16進 説明
adLockReadOnly 1 &H1 デフォルトの値です。読み取り専用。
adLockPessimistic 2 &H2 レコードごとの排他的ロック。
adLockOptimistic 3 &H3 レコードごとの共有的ロック。
adLockBatchOptimistic 4 &H4 共有的バッチ更新。

AbsolutePosition プロパティ(ADO)関連定数

Recordset 内のカレントレコードの位置を指定します。
PositionEnum で指定できる。

赤字部分はドキュメントに記載されていない補足部分。

定数名 数値 説明
adPosUnknown -1 Recordset が空,現在の位置が不明,またはプロバイダが AbsolutePosition をサポートしていない。
adPosBOF -2 カレントレコードが BOF。
adPosEOF -3 カレントレコードが EOF。

Type プロパティ(ADO)関連定数

Parameter,Field または Property のデータ型を示します。
DataTypeEnum で指定できる。

赤字部分はドキュメントに記載されていない補足部分。

定数名 数値 16進 説明
adArray 8192 &H2000 undocumented
adBigInt 20 &H14 DBTYPE_I8
adBinary 128 &H80 DBTYPE_BYTES
adBoolean 11 &HB DBTYPE_BOOL
adBSTR 8 &H8 DBTYPE_BSTR
adChapter 136 &H88 undocumented
adChar 129 &H81 DBTYPE_STR
adCurrency 6 &H6 DBTYPE_CY
adDate 7 &H7 DBTYPE_DATE
adDBDate 133 &H85 DBTYPE_DBDATE
adDBTime 134 &H86 DBTYPE_DBTIME
adDBTimeStamp 135 &H87 DBTYPE_DBTIMESTAMP
adDecimal 14 &HE DBTYPE_DECIMAL
adDouble 5 &H5 DBTYPE_R8
adEmpty 0 &H0 DBTYPE_EMPTY
adError 10 &HA DBTYPE_ERROR
adFileTime 64 &H40 undocumented
adGUID 72 &H48 DBTYPE_GUID
adIDispatch 9 &H9 DBTYPE_IDISPATCH
adInteger 3 &H3 DBTYPE_I4
adIUnknown 13 &HD DBTYPE_IUNKNOWN
adLongVarBinary 205 &HCD 長バイナリ型。(Parameter のみ)
adLongVarChar 201 &HC9 長文字列型。(Parameter のみ)
adLongVarWCharBinary 203 &HCB Null 終了型の長文字列型。(Parameter のみ)
adNumeric 131 &H83 DBTYPE_NUMERIC
adPropVariant 138 &H8A undocumented
adSingle 4 &H4 DBTYPE_R4
adSmallInt 2 &H2 DBTYPE_I2
adTinyInt 16 &H10 DBTYPE_I1
adUnsignedBigInt 21 &H15 DBTYPE_UI8
adUnsignedInt 19 &H13 DBTYPE_UI4
adUnsignedSmallInt 18 &H12 DBTYPE_UI2
adUnsignedTinyInt 17 &H11 DBTYPE_UI1
adUserDefined 132 &H84 DBTYPE_UDT
adVarBinary 204 &HCC バイナリ型(Parameter のみ)
adVarChar 200 &HC8 文字列型(Parameter のみ)
adVariant 12 &HC DBTYPE_VARIANT
adVarNumeric 139 &H8B undocumented
adVarWChar 202 &HCA Null 終了型の Unicode 文字列。(Parameter のみ)
adWChar 130 &H82 DBTYPE_WSTR

State プロパティ(ADO)関連定数

State:非同期メソッドを実行している Recordset について現在の状態を示す
ObjectStateEnum で指定できる。

赤字部分はドキュメントに記載されていない補足部分。

定数名 数値 16進 説明
adStateClosed 0 &H0 デフォルトの値です。オブジェクトが閉じていることを示します。
adStateOpen 1 &H1 オブジェクトが開いていることを示します。
adStateConnecting 2 &H2 Recordset が接続中であることを示します。
adStateExecuting 4 &H4 Recordset がコマンドを実行中であることを示します。
adStateFetching 8 &H8 Recordset が行をフェッチ中であることを示します。

Status プロパティ(ADO)関連定数

Status:バッチ更新または他の一括操作に関するレコードの状態を示す。
RecordStatusEnum で指定できる。

赤字部分はドキュメントに記載されていない補足部分。

定数名 数値 16進 説明
adRecOk 0 &H0 更新成功。
adRecNew 1 &H1 新規レコード。
adRecModified 2 &H2 変更されたデータ。
adRecDeleted 4 &H4 削除されたレコード。
adRecUnModified 8 &H8 変更されていないレコード。
adRecInvalid 16 &H10 ブックマークが無効なため,変更は保存されない。
adRecMultipleChanges 64 &H40 複数の行に影響をするため,変更は保存されない。
adRecPendingChanges 128 &H80 未処理の挿入を参照するため,変更は保存されない。
adRecCanceled 256 &H100 操作がキャンセルされたため,変更は保存されない。
adRecCantRelease 1024 &H400 既存レコードがロックされているため,変更は保存されない。
adRecConcurrencyViolation 2048 &H800 共有ロックの同時実行のため,変更は保存されない。
adRecIntegrityViolation 4096 &H1000 ユーザーが整合性の制約に違反したため,変更は保存されない。
adRecMaxChangesExceeded 8192 &H2000 未処理の変更が多すぎたため,変更は保存されない。
adRecObjectOpen 16384 &H4000 開いているストレージオブジェクトとの競合のため,変更は保存されない。
adRecOutOfMemory 32768 &H8000 メモリ不足のため,変更は保存されない。
adRecPermissionDenied 65536 &H10000 権限がないため,変更は保存されない。
adRecSchemaViolation 131072 &H20000 データベースのスキーマに違反するため,変更は保存されない。
adRecDBDeleted 262144 &H40000 レコードが既にソースから削除されているため,変更は保存されない。

adRecConcurrencyViolation は,UpdateBatch による更新どうしの競合によって発生する。

adMaxChangesExceeded は,未処理状態の更新(.Update/.UpdateBatch か .UpdateCancel/.CancelBatch が投げられていない更新)の数が,Recordset が許容できる更新キャッシュ数を上回っているいる状態で,更新キャッシュが破棄されるような動作をすると再現する
許容更新キャッシュは,通常の Recordset では 1 で,バッチ更新を使用する場合は1以上の値に設定します。
ex) Recordset に更新をセットして,.Update しないまま .Close を実行すると,CONTEXT ERROR と共に発生。

CursorType 別,LockType 別 Supports 一覧(SQLOLEDB-UseServer)

  OpenForwardOnly OpenKeyset OpenDynamic OpenStatic
LockReadOnly Find
Notifications
(Open Method Default)
(CMD Obj Rtn RS Default)
AbsolutePosition and AbsolutePage
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Find
MovePrevious and Move
Notifications
AbsolutePosition and AbsolutePage
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
LockPessimistic AddNew
Delete
Find
Notifications
Update
batch updating
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
AddNew
Delete
Find
MovePrevious and Move
Notifications
Update
batch updating
>OpenKeyset
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Update
batch updating
LockOptimistic AddNew
Delete
Find
Notifications
Update
batch updating
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
AddNew
Delete
Find
MovePrevious and Move
Notifications
Update
batch updating
>OpenKeyset
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Update
batch updating
LockBatchOptimistic AddNew
Delete
Find
Notifications
Update
batch updating
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
AddNew
Delete
Find
MovePrevious and Move
Notifications
Update
batch updating
>OpenKeyset
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Update
batch updating

」は強制変換

CursorType 別,LockType 別 Supports 一覧(SQLOLEDB-UseClient)

  OpenForwardOnly OpenKeyset OpenDynamic OpenStatic
LockReadOnly >OpenStatic
AbsolutePosition and AbsolutePage
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
>OpenStatic
AbsolutePosition and AbsolutePage
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
>OpenStatic
AbsolutePosition and AbsolutePage
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
AbsolutePosition and AbsolutePage
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
LockPessimistic >OpenStatic
>LockBatchOptimistic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
>LockBatchOptimistic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
>LockBatchOptimistic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
LockOptimistic >OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
LockBatchOptimistic >OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating

」は強制変換

CursorType 別,LockType 別 Supports 一覧(JET_OLEDB-UseServer)

  OpenForwardOnly OpenKeyset OpenDynamic OpenStatic
LockReadOnly Find
Notifications
Resyncing date
(Open Method Default)
(CMD Obj Rtn RS Default)
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
>OpenStatic
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
LockPessimistic >LockBatchOptimistic
AddNew
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>LockBatchOptimistic
AddNew
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenKeySet
>LockBatchOptimistic
AddNew
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenKeySet
>LockBatchOptimistic
AddNew
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
LockOptimistic AddNew
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
AddNew
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenKeySet
AddNew
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenKeySet
AddNew
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
LockBatchOptimistic AddNew
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
AddNew
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenKeySet
AddNew
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenKeySet
AddNew
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating

」は強制変換

CursorType 別,LockType 別 Supports 一覧(JET_OLEDB-UseClient)

  OpenForwardOnly OpenKeyset OpenDynamic OpenStatic
LockReadOnly >OpenStatic
AbsolutePosition and AbsolutePage
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
>OpenStatic
AbsolutePosition and AbsolutePage
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
>OpenStatic
AbsolutePosition and AbsolutePage
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Bookmark
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
LockPessimistic >OpenStatic
>LockBatchOptimistic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
>LockBatchOptimistic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
>LockBatchOptimistic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>LockBatchOptimistic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
LockOptimistic >OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
LockBatchOptimistic >OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
>OpenStatic
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating
AddNew
AbsolutePosition and AbsolutePage
Bookmark
Delete
Find
Holding Records
MovePrevious and Move
Notifications
Resyncing data
Update
batch updating

」は強制変換

ADODB エラーパターン

ADO ロック取得待ちタイムアウト

Number Native Error SQLState 内容
-2147217871 none HYT00 時間切れになりました。
(Microsoft OLE DB Provider for SQL Server)

コネクション接続前にネットワーク切断

Number Native Error SQLState 内容
-2147467259 1231 01000 [DBNMPNTW]Connection Open(Create File())

コネクション接続後にネットワーク切断

Number Native Error SQLState 内容
-2147467259 0 08S01 接続できません。

Recordset 作成後,Execute 時にネットワーク切断

Number Native Error SQLState 内容
-2147467259 64 01000 [DBNMPNTW]Connection Write(GetOverLappedResult())

Recordset 作成後,BatchUpdate 時にネットワーク切断

Number Native Error SQLState 内容
-2147467259 64 01000 [DBNMPNTW]Connection Transact(GetOverLappedResult())

JET DB Engine の削除エラー

Number Native Error SQLState 内容
-2147467259 -199756777 3086 指定したテーブルから削除できませんでした。

Published 2008年3月28日 13:27 投稿者 timberlandchapel
タグ :

コメント

コメントはありません