ADO-Konstanten für Python #
Bei der Arbeit mit ADO-Objekten (ADODB.Connection, ADODB.Recordset) über win32com.client stehen die ADO-Konstanten nicht automatisch zur Verfügung. Die folgenden Definitionen können in Python-Skripten verwendet werden.
Die ADO-Konstanten setzen das Paket pywin32 voraus. Installation und Einrichtung sind unter Python beschrieben.Alternativ können die Konstanten auch über win32com.client.constants nach einem EnsureDispatch oder gencache.EnsureModule bezogen werden. Die explizite Definition ist aber übersichtlicher und funktioniert ohne Typ-Bibliothek.
Cursor Type #
adOpenUnspecified = -1
adOpenForwardOnly = 0
adOpenKeyset = 1
adOpenDynamic = 2
adOpenStatic = 3
Lock Type #
adLockUnspecified = -1
adLockReadOnly = 1
adLockPessimistic = 2
adLockOptimistic = 3
adLockBatchOptimistic = 4
Execute Options #
adOptionUnspecified = -1
adAsyncExecute = 0x10
adAsyncFetch = 0x20
adAsyncFetchNonBlocking = 0x40
# Wenn kein Recordset als Rueckgabe erwartet wird,
# sollte diese Option angegeben werden, da sich die
# Ausfuehrungsgeschwindigkeit hierdurch merkbar beschleunigt.
adExecuteNoRecords = 0x80
Object State #
adStateClosed = 0
adStateOpen = 1
adStateConnecting = 2
adStateExecuting = 4
adStateFetching = 8
Cursor Location #
adUseNone = 1
adUseServer = 2
adUseClient = 3
Datentypen #
adEmpty = 0
adTinyInt = 16
adSmallInt = 2
adInteger = 3
adBigInt = 20
adUnsignedTinyInt = 17
adUnsignedSmallInt = 18
adUnsignedInt = 19
adUnsignedBigInt = 21
adSingle = 4
adDouble = 5
adCurrency = 6
adDecimal = 14
adNumeric = 131
adBoolean = 11
adError = 10
adUserDefined = 132
adVariant = 12
adIDispatch = 9
adIUnknown = 13
adGUID = 72
adDate = 7
adDBDate = 133
adDBTime = 134
adDBTimeStamp = 135
adBSTR = 8
adChar = 129
adVarChar = 200
adLongVarChar = 201
adWChar = 130
adVarWChar = 202
adLongVarWChar = 203
adBinary = 128
adVarBinary = 204
adLongVarBinary = 205
Feld-Attribute #
adFldUnspecified = -1
adFldMayDefer = 0x2
adFldUpdatable = 0x4
adFldUnknownUpdatable = 0x8
adFldFixed = 0x10
adFldIsNullable = 0x20
adFldMayBeNull = 0x40
adFldLong = 0x80
adFldRowID = 0x100
adFldRowVersion = 0x200
adFldCacheDeferred = 0x1000
adFldKeyColumn = 0x8000
Edit Mode #
adEditNone = 0
adEditInProgress = 1
adEditAdd = 2
adEditDelete = 4
Record Status #
adRecOK = 0
adRecNew = 1
adRecModified = 2
adRecDeleted = 4
adRecUnmodified = 8
adRecInvalid = 16
adRecMultipleChanges = 64
adRecPendingChanges = 128
adRecCanceled = 256
adRecCantRelease = 1024
adRecConcurrencyViolation = 2048
adRecIntegrityViolation = 4096
adRecMaxChangesExceeded = 8192
adRecObjectOpen = 16384
adRecOutOfMemory = 32768
adRecPermissionDenied = 65536
adRecSchemaViolation = 131072
adRecDBDeleted = 262144
Command Type #
adCmdUnspecified = -1
adCmdUnknown = 8
adCmdText = 1
adCmdTable = 2
adCmdStoredProc = 4
adCmdFile = 256
adCmdTableDirect = 512
Connect Mode #
adModeUnknown = 0
adModeRead = 1
adModeWrite = 2
adModeReadWrite = 3
adModeShareDenyRead = 4
adModeShareDenyWrite = 8
adModeShareExclusive = 12
adModeShareDenyNone = 16
Parameter Direction #
adParamUnknown = 0
adParamInput = 1
adParamOutput = 2
adParamInputOutput = 3
adParamReturnValue = 4
Suchrichtung #
adSearchForward = 1
adSearchBackward = -1
Bookmark #
adBookmarkCurrent = 0
adBookmarkFirst = 1
adBookmarkLast = 2
Fehler-Konstanten #
adErrInvalidArgument = 3001
adErrNoCurrentRecord = 3021
adErrIllegalOperation = 3219
adErrInTransaction = 3246
adErrFeatureNotAvailable = 3251
adErrItemNotFound = 3265
adErrObjectInCollection = 3367
adErrObjectNotSet = 3420
adErrDataConversion = 3421
adErrObjectClosed = 3704
adErrObjectOpen = 3705
adErrProviderNotFound = 3706
adErrBoundToCommand = 3707
adErrInvalidParamInfo = 3708
adErrInvalidConnection = 3709
adErrNotReentrant = 3710
adErrStillExecuting = 3711
adErrOperationCancelled = 3712
adErrStillConnecting = 3713
adErrUnsafeOperation = 3716
Verwendung #
import win32com.client
conn = win32com.client.Dispatch("ADODB.Connection")
conn.Open("Provider=MSOLEDBSQL.1;Integrated Security=SSPI;"
"Initial Catalog=EULANDA_MeinMandant;Data Source=.")
rs = win32com.client.Dispatch("ADODB.Recordset")
rs.Open("SELECT Match, Name1, Ort FROM Adresse ORDER BY Match",
conn, adOpenStatic, adLockReadOnly)
while not rs.EOF:
print(rs.Fields("Match").Value)
rs.MoveNext()
rs.Close()
conn.Close()