oledbintfuni.pas
来自「CrLab UniDAC 1.0 include sources」· PAS 代码 · 共 933 行 · 第 1/3 页
PAS
933 行
{$I Sdac.inc}
unit OLEDBIntfUni;
interface
uses
{$IFDEF VER6P}
FMTBcd,
{$ELSE}
DB,
{$ENDIF}
{$IFNDEF UNIDACPRO}OLEDBC{$ELSE}OLEDBCUni{$ENDIF},
CLRClasses,
ActiveX,
Windows;
type
PIUnknown = ^IUnknown;
PUintArray = IntPtr;
TUintArray = array of UINT;
PPByte = ^PByte;
PPByteArray = IntPtr;
TPByteArray = array of PByte;
type
PDBTimeStamp = ^TDBTimeStamp;
DBTIMESTAMP = packed record
year: Smallint;
month: Word;
day: Word;
hour: Word;
minute: Word;
second: Word;
fraction: UINT;
end;
TDBTimeStamp = DBTIMESTAMP;
{$EXTERNALSYM DBTIMESTAMP}
type
PBoid = ^TBoid;
BOID = packed record
rgb_: array[0..15] of Byte;
end;
TBoid = BOID;
{$EXTERNALSYM BOID}
XACTTRANSINFO = packed record
uow: BOID;
isoLevel: Integer;
isoFlags: UINT;
grfTCSupported: UINT;
grfRMSupported: UINT;
grfTCSupportedRetaining: UINT;
grfRMSupportedRetaining: UINT;
end;
TXactTransInfo = XACTTRANSINFO;
{$EXTERNALSYM XACTTRANSINFO}
XACTOPT = packed record
ulTimeout: UINT;
szDescription: array[0..39] of Shortint;
end;
TXActOpt = XACTOPT;
{$EXTERNALSYM XACTOPT}
XACTSTATS = packed record
cOpen: UINT;
cCommitting: UINT;
cCommitted: UINT;
cAborting: UINT;
cAborted: UINT;
cInDoubt: UINT;
cHeuristicDecision: UINT;
timeTransactionsUp: FILETIME;
end;
TXactStats = XACTSTATS;
{$EXTERNALSYM XACTSTATS}
PDBBindExt = ^TDBBindExt;
DBBINDEXT = packed record
pExtension: IntPtr; // PByte;
ulExtension: UINT;
end;
TDBBindExt = DBBINDEXT;
{$EXTERNALSYM DBBINDEXT}
DBOBJECT = packed record
dwFlags: UINT;
iid: TGUID;
end;
TDBObject = DBOBJECT;
{$EXTERNALSYM DBOBJECT}
PDBBinding = ^TDBBinding;
DBBINDING = packed record
iOrdinal: UINT;
obValue: UINT;
obLength: UINT;
obStatus: UINT;
pTypeInfo: IntPtr; // IUnknown;
pObject: IntPtr; // PDBObject;
pBindExt: IntPtr; // PDBBindExt;
dwPart: DBPART;
dwMemOwner: DBMEMOWNER;
eParamIO: DBPARAMIO;
cbMaxLen: UINT;
dwFlags: UINT;
wType: DBTYPE;
bPrecision: Byte;
bScale: Byte;
end;
TDBBinding = DBBINDING;
{ $IFNDEF VER125}
{ $EXTERNALSYM DBBINDING}
{ $ENDIF}
// PDBBindingArray = ^TDBBindingArray;
// TDBBindingArray = array[0..MAXBOUND] of TDBBinding;
PDBBindingArray = IntPtr;
TDBBindingArray = array of TDBBinding;
DBIDNAME = record
case Integer of
0: (pwszName: PWideChar);
1: (ulPropid: UINT);
end;
TDBIDName = DBIDNAME;
DBIDGUID = record
case Integer of
0: (guid: TGUID);
1: (pguid: ^TGUID);
end;
TDBIDGuid = DBIDGUID;
DBPROPID = UINT;
{$EXTERNALSYM DBPROPID}
PDBPROPID = ^DBPROPID;
PDBPropIDArray = ^TDBPropIDArray;
TDBPropIDArray = array[0..MAXBOUND] of DBPROPID;
PPDBID = ^PDBID;
PDBID = ^DBID;
DBID = packed record
uGuid: DBIDGUID;
eKind: DBKIND;
uName: DBIDNAME;
end;
TDBID = DBID;
{$EXTERNALSYM DBID}
PDBIDArray = ^TDBIDArray;
TDBIDArray = array[0..MAXBOUND] of TDBID;
PDBPropIDSet = ^TDBPropIDSet;
DBPROPIDSET = packed record
rgPropertyIDs: IntPtr; // PDBPropIDArray;
cPropertyIDs: UINT;
guidPropertySet: TGUID;
end;
TDBPropIDSet = DBPROPIDSET;
{$EXTERNALSYM DBPROPIDSET}
PDBPropIDSetArray = ^TDBPropIDSetArray;
TDBPropIDSetArray = array[0..MAXBOUND] of TDBPropIDSet;
PDBProp = ^TDBProp;
DBPROP = packed record
dwPropertyID: DBPROPID;
dwOptions: DBPROPOPTIONS;
dwStatus: DBPROPSTATUS;
colid: DBID;
vValue: OleVariant;
end;
TDBProp = DBPROP;
{$EXTERNALSYM DBPROP}
PDBPropArray = IntPtr;
TDBPropArray = array[0..MAXBOUND] of TDBProp;
PPDBPropSet = ^PDBPropSet;
PDBPropSet = ^TDBPropSet;
DBPROPSET = packed record
rgProperties: PDBPropArray;
cProperties: UINT;
guidPropertySet: TGUID;
end;
TDBPropSet = DBPROPSET;
{$EXTERNALSYM DBPROPSET}
PDBPropSetArray = ^TDBPropSetArray;
TDBPropSetArray = array[0..MAXBOUND] of TDBPropSet;
PDBPropInfo = ^TDBPropInfo;
DBPROPINFO = packed record
pwszDescription: PWideChar;
dwPropertyID: DBPROPID;
dwFlags: DBPROPFLAGS;
vtType: Word;
vValues: OleVariant;
end;
TDBPropInfo = DBPROPINFO;
{$EXTERNALSYM DBPROPINFO}
PDBPropInfoArray = ^TDBPropInfoArray;
TDBPropInfoArray = array[0..MAXBOUND] of TDBPropInfo;
PDBPropInfoSet = IntPtr;
(*
PDBPropInfoSet = ^TDBPropInfoSet;
DBPROPINFOSET = packed record
rgPropertyInfos: PDBPropInfoArray;
cPropertyInfos: UINT;
guidPropertySet: TGUID;
end;
TDBPropInfoSet = DBPROPINFOSET;
{$EXTERNALSYM DBPROPINFOSET}
*)
PDBParams = ^TDBPARAMS;
DBPARAMS = packed record
pData: IntPtr;
cParamSets: UINT;
HACCESSOR: HACCESSOR;
end;
TDBParams = DBPARAMS;
{$EXTERNALSYM DBPARAMS}
PDBColumnInfo = ^TDBColumnInfo;
DBCOLUMNINFO = packed record
pwszName: PWideChar;
pTypeInfo: IntPtr;
iOrdinal: UINT;
dwFlags: DBCOLUMNFLAGS;
ulColumnSize: UINT;
wType: DBTYPE;
bPrecision: Byte;
bScale: Byte;
columnid: DBID;
end;
TDBColumnInfo = DBCOLUMNINFO;
{$EXTERNALSYM DBCOLUMNINFO}
PDBColumnInfoArray = ^TDBColumnInfoArray;
TDBColumnInfoArray = array[0..MAXCOLS] of TDBColumnInfo;
PDBLiteralInfo = ^DBLiteralInfo;
DBLITERALINFO = packed record
pwszLiteralValue: PWideChar;
pwszInvalidChars: PWideChar;
pwszInvalidStartingChars: PWideChar;
lt: UINT;
fSupported: BOOL;
cchMaxLen: UINT;
end;
TDBLiteralInfo = DBLITERALINFO;
{$EXTERNALSYM DBLITERALINFO}
PDBLiteralInfoArray = ^TDBLiteralInfoArray;
TDBLiteralInfoArray = array[0..MAXBOUND] of TDBLiteralInfo;
PDBColumnDesc = ^TDBColumnDesc;
DBCOLUMNDESC = packed record
pwszTypeName: PWideChar;
pTypeInfo: IntPtr;
rgPropertySets: IntPtr;
pclsid: IntPtr;
cPropertySets: UINT;
ulColumnSize: UINT;
dbcid: DBID;
wType: DBTYPE;
bPrecision: Byte;
bScale: Byte;
end;
TDBColumnDesc = DBCOLUMNDESC;
{$EXTERNALSYM DBCOLUMNDESC}
PErrorInfo = ^TErrorInfo;
ERRORINFO = packed record
hrError: HResult;
dwMinor: UINT;
clsid: TGUID;
iid: TGUID;
dispid: Integer;
end;
TErrorInfo = ERRORINFO;
{$EXTERNALSYM ERRORINFO}
PDBParamInfo = IntPtr;
(* PDBParamInfo = ^TDBParamInfo;
DBPARAMINFO = packed record
dwFlags: DBPARAMFLAGS;
iOrdinal: UINT;
pwszName: PWideChar;
pTypeInfo: ITypeInfo;
ulParamSize: UINT;
wType: DBTYPE;
bPrecision: Byte;
bScale: Byte;
end;
TDBParamInfo = DBPARAMINFO;
{$EXTERNALSYM DBPARAMINFO}*)
PDBParamBindInfo = ^TDBParamBindInfo;
DBPARAMBINDINFO = packed record
pwszDataSourceType: PWideChar;
pwszName: PWideChar;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?