⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 devart.sdac.oledbintf.pas

📁 devent UniDAC 2.003 include sources
💻 PAS
📖 第 1 页 / 共 4 页
字号:
  end;
  TDBParamInfo = DBPARAMINFO;
  {$EXTERNALSYM DBPARAMINFO}*)

  PDBParamBindInfo = IntPtr;
  [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Auto)]
  DBPARAMBINDINFO = packed record
    pwszDataSourceType: IntPtr;
    pwszName: IntPtr;
    ulParamSize: UINT;
    dwFlags: DBPARAMFLAGS;
    bPrecision: Byte;
    bScale: Byte;
  end;
  TDBParamBindInfo = DBPARAMBINDINFO;
  {$EXTERNALSYM DBPARAMBINDINFO}

  PDBParamBindInfoArray = IntPtr;
  TDBParamBindInfoArray = array[0..MAXBOUND] of TDBParamBindInfo;

  PDBNumeric = IntPtr;
  [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Auto)]  
  DB_NUMERIC = packed record
    precision: Byte;
    scale: Byte;
    sign: Byte;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16, ArraySubType = UnmanagedType.U1)]
    val: array[0..15] of Byte;
  end;
  TDBNumeric = DB_NUMERIC;
  {$EXTERNALSYM DB_NUMERIC}

  // Multi Language support
  
  PMIMECPInfo = IntPtr;
  [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Auto)]
  MIMECPINFO = record
    dwFlags: DWORD;
    uiCodePage: UINT;
    uiFamilyCodePage: UINT;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.U2)]
    wszDescription: array [0..63] of WideChar;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U2)]
    wszWebCharset: array [0..49] of WideChar;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U2)]
    wszHeaderCharset: array [0..49] of WideChar;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U2)]
    wszBodyCharset: array [0..49] of WideChar;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.U2)]
    wszFixedWidthFont: array [0..31] of WideChar;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.U2)]
    wszProportionalFont: array [0..31] of WideChar;
    bGDICharset: BYTE;
  end;
  TMIMECPInfo = MIMECPINFO;
  {$EXTERNALSYM MIMECPINFO}

  PMIMECSetInfo = IntPtr;
  [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Auto)]
  MIMECSETINFO = record
    uiCodePage: UINT;
    uiInternetEncoding: UINT;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 50, ArraySubType = UnmanagedType.U2)]
    wszCharset: array [0..49] of WideChar;
  end;
  TMIMECSetInfo = MIMECSETINFO;
  {$EXTERNALSYM MIMECSETINFO}

  PRFC1766Info = IntPtr;
  [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Auto)]
  RFC1766INFO = record
    alcid: LCID;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = UnmanagedType.U2)]
    wszRfc1766: array [0..5] of WideChar;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32, ArraySubType = UnmanagedType.U2)]
    wszLocaleName: array [0..31] of WideChar;
  end;
  TRFC1766Info = RFC1766INFO;
  {$EXTERNALSYM RFC1766INFO}
  
const
  SizeOfTDBNumeric = 19;
// *********************************************************************//
//  DBID Values
// *********************************************************************//

var
  DB_NULLID: _DBID = ($00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00);

type
  TVariantArray = array [0..0] of OleVariant;
  PVariantArray = IntPtr;

  TGUIDArray = array [0..0] of TGUID;
  PGUIDArray = IntPtr;

// *********************************************************************//
// Interface: ITransaction
// GUID:      {0FB15084-AF41-11CE-BD2B-204C4F4F5020}
// *********************************************************************//
{$IFNDEF VER6P}
  {$NODEFINE ITransaction}
{$ENDIF}
  [ComImport, GuidAttribute('0FB15084-AF41-11CE-BD2B-204C4F4F5020'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  ITransaction = interface
    [PreserveSig]
    function Commit(fRetaining: BOOL; grfTC: UINT; grfRM: UINT): HResult;
    [PreserveSig]
    function Abort(pboidReason: PBOID; fRetaining: BOOL; fAsync: BOOL): HResult;
    [PreserveSig]
    function GetTransactionInfo(out pinfo: XACTTRANSINFO): HResult;
  end;

// *********************************************************************//
// Interface: ITransactionOptions
// GUID:      {3A6AD9E0-23B9-11CF-AD60-00AA00A74CCD}
// *********************************************************************//
  [ComImport, GuidAttribute('3A6AD9E0-23B9-11CF-AD60-00AA00A74CCD'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  ITransactionOptions = interface
    [PreserveSig]
    function SetOptions(var pOptions: XACTOPT): HResult;
    [PreserveSig]
    function GetOptions(var pOptions: XACTOPT): HResult;
  end;

// *********************************************************************//
// Interface: IAccessor
// GUID:      {0C733A8C-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  [ComImport, GuidAttribute('0C733A8C-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  IAccessor = interface
    [PreserveSig]
    function AddRefAccessor(
      HACCESSOR: HACCESSOR;
      [Out, MarshalAs(UnmanagedType.U4)]
      out pcRefCount: UINT): HResult;
    [PreserveSig]
    function CreateAccessor(
      dwAccessorFlags: UINT;
      cBindings: UINT;
      rgBindings: PDBBindingArray;
      cbRowSize: UINT;
      var phAccessor: HACCESSOR;
      rgStatus: PUintArray
    ): HResult;
    [PreserveSig]
    function GetBindings(HACCESSOR: HACCESSOR;
      [Out, MarshalAs(UnmanagedType.U4)]
      out pdwAccessorFlags: UINT;
      var pcBindings: UINT;
      out prgBindings: PDBBinding): HResult;
    [PreserveSig]
    function ReleaseAccessor(HACCESSOR: HACCESSOR;
      pcRefCount: PUINT): HResult;
  end;

// *********************************************************************//
// Interface: IRowset
// GUID:      {0C733A7C-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  [ComImport, GuidAttribute('0C733A7C-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  IRowset = interface
    [PreserveSig]
    function AddRefRows(cRows: UINT; rghRows: PUintArray; rgRefCounts: PUintArray;
      rgRowStatus: PUintArray): HResult;
    [PreserveSig]
    function GetData(HROW: HROW; HACCESSOR: HACCESSOR; pData: IntPtr): HResult;
    [PreserveSig]
    function GetNextRows(hReserved: HCHAPTER; lRowsOffset: Integer; cRows: Integer;
      out pcRowsObtained: UINT; var prghRows: PUintArray): HResult;
    [PreserveSig]
    function ReleaseRows(
      cRows: UINT; 
      rghRows: PUintArray; 
      rgRowOptions,
      rgRefCounts, 
      rgRowStatus: PUintArray): HResult;
    [PreserveSig]
    function RestartPosition(hReserved: HCHAPTER): HResult;
  end;

// *********************************************************************//
// Interface: IRowsetInfo
// GUID:      {0C733A55-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  [ComImport, GuidAttribute('0C733A55-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  IRowsetInfo = interface
    [PreserveSig]
    function GetProperties(cPropertyIDSets: UINT; rgPropertyIDSets: PDBPropIDSetArray;
      out pcPropertySets: UINT; out prgPropertySets: PDBPropSet): HResult;
    [PreserveSig]
    function GetReferencedRowset(iOrdinal: UINT;
      [In, MarshalAs(UnmanagedType.LPStruct)]
      const riid: TGUID;
      [Out, MarshalAs(UnmanagedType.IUnknown)]
      out ppReferencedRowset: IUnknown): HResult;
    [PreserveSig]
    function GetSpecification(
      [In, MarshalAs(UnmanagedType.LPStruct)]
      const riid: TGUID;
      [Out, MarshalAs(UnmanagedType.IUnknown)]
      out ppSpecification: IUnknown): HResult;
  end;

// *********************************************************************//
// Interface: IRowsetLocate
// GUID:      {0C733A7D-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  [ComImport, GuidAttribute('0C733A7D-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  IRowsetLocate = interface
    // IRowset
    [PreserveSig]
    function AddRefRows(cRows: UINT; rghRows: PUintArray; rgRefCounts: PUintArray;
      rgRowStatus: PUintArray): HResult;
    [PreserveSig]
    function GetData(HROW: HROW; HACCESSOR: HACCESSOR; pData: IntPtr): HResult;
    [PreserveSig]
    function GetNextRows(hReserved: HCHAPTER; lRowsOffset: Integer; cRows: Integer;
      out pcRowsObtained: UINT; var prghRows: PUintArray): HResult;
    [PreserveSig]
    function ReleaseRows(cRows: UINT; rghRows: PUintArray; rgRowOptions,
      rgRefCounts, rgRowStatus: PUintArray): HResult;
    [PreserveSig]
    function RestartPosition(hReserved: HCHAPTER): HResult;

    // IRowsetLocate
    [PreserveSig]
    function Compare(hReserved: HCHAPTER; cbBookmark1: UINT; pBookmark1: IntPtr;
      cbBookmark2: UINT; pBookmark2: IntPtr; out pComparison: UINT): HResult;
    [PreserveSig]
    function GetRowsAt(
      hReserved1: HWATCHREGION;
      hReserved2: HCHAPTER;
      cbBookmark: UINT;
      pBookmark: IntPtr;
      lRowsOffset: Integer;
      cRows: Integer;
      out pcRowsObtained: UINT;
      var prghRows: PUintArray): HResult;
    [PreserveSig]
    function GetRowsByBookmark(hReserved: HCHAPTER; cRows: UINT; rgcbBookmarks: PUintArray;
      rgpBookmarks: PPByteArray; rghRows, rgRowStatus: PUintArray): HResult;
    [PreserveSig]
    function Hash(hReserved: HCHAPTER; cBookmarks: UINT; rgcbBookmarks: PUintArray;
      rgpBookmarks: PPByteArray; rgHashedValues,
        rgBookmarkStatus: PUintArray): HResult;
  end;

// *********************************************************************//
// Interface: IRowsetChange
// GUID:      {0C733A05-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  [ComImport, GuidAttribute('0C733A05-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  IRowsetChange = interface
    [PreserveSig]
    function DeleteRows(hReserved: HCHAPTER; cRows: UINT; rghRows: PUintArray;
      rgRowStatus: PUintArray): HResult;
    [PreserveSig]
    function SetData(HROW: HROW; HACCESSOR: HACCESSOR; pData: IntPtr): HResult;
    [PreserveSig]
    function InsertRow(hReserved: HCHAPTER; HACCESSOR: HACCESSOR; pData: IntPtr;
      out phRow: HROW): HResult;
  end;

// *********************************************************************//
// Interface: IRowsetUpdate
// GUID:      {0C733A6D-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  [ComImport, GuidAttribute('0C733A6D-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  IRowsetUpdate = interface
    // IRowsetChange
    [PreserveSig]
    function DeleteRows(hReserved: HCHAPTER; cRows: UINT; rghRows: PUintArray;
      rgRowStatus: PUintArray): HResult;
    [PreserveSig]
    function SetData(HROW: HROW; HACCESSOR: HACCESSOR; pData: IntPtr): HResult;
    [PreserveSig]
    function InsertRow(hReserved: HCHAPTER; HACCESSOR: HACCESSOR; pData: IntPtr;
      out phRow: HROW): HResult;

    // IRowsetUpdate
    [PreserveSig]
    function GetOriginalData(HROW: HROW; HACCESSOR: HACCESSOR; pData: IntPtr): HResult;
    [PreserveSig]
    function GetPendingRows(hReserved: HCHAPTER; dwRowStatus: DBPENDINGSTATUS;
      [Out, MarshalAs(UnmanagedType.U4)]
      out pcPendingRows: UINT;
      prgPendingRows: PPHROW; prgPendingStatus: PPDBPENDINGSTATUS): HResult;
    [PreserveSig]
    function GetRowStatus(hReserved: HCHAPTER;
      [Out, MarshalAs(UnmanagedType.U4)]
      out cRows: UINT;
      rghRows: PUintArray;
      rgPendingStatus: PUintArray): HResult;
    [PreserveSig]
    function Undo(
      hReserved: HCHAPTER;
      cRows: UINT;
      rghRows: PUintArray;
      pcRowsUndone: PUINT;
      prgRowsUndone: PPHROW;
      prgRowStatus: PPDBROWSTATUS
      ): HResult;
    [PreserveSig]
    function Update(
      hReserved: HCHAPTER;
      cRows: UINT;
      rghRows: PUintArray;
      pcRows: PUINT;
      prgRows: PPHROW;
      out prgRowStatus: PDBROWSTATUS
      ): HResult;
  end;

// *********************************************************************//
// Interface: IMultipleResults
// GUID:      {0C733A90-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  [ComImport, GuidAttribute('0C733A90-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  IMultipleResults = interface
    [PreserveSig]
    function GetResult(
      [In, MarshalAs(UnmanagedType.IUnknown)]
      const punkOuter: IUnknown;
      reserved: Integer;
      [In, MarshalAs(UnmanagedType.LPStruct)]
      const riid: TGUID;
      [Out, MarshalAs(UnmanagedType.U4)]
      out pcRowsAffected: Integer;
      [Out, MarshalAs(UnmanagedType.Interface)]
      out ppRowset: IUnknown): HResult;
  end;

// *********************************************************************//
// Interface: ICommandPrepare
// GUID:      {0C733A26-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  [ComImport, GuidAttribute('0C733A26-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  ICommandPrepare = interface
    [PreserveSig]
    function Prepare(cExpectedRuns: UINT): HResult;
    [PreserveSig]
    function Unprepare: HResult;
  end;

// *********************************************************************//
// Interface: ICommandProperties
// GUID:      {0C733A79-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//

  [ComImport, GuidAttribute('0C733A79-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  ICommandProperties = interface
    [PreserveSig]
    function GetProperties(cPropertyIDSets: UINT; rgPropertyIDSets: PDBPropIDSetArray;
      var pcPropertySets: UINT; out prgPropertySets: PDBPropSet): HResult;
    [PreserveSig]
    function SetProperties(cPropertySets: UINT; rgPropertySets: PDBPropSetArray): HResult;
  end;

// *********************************************************************//
// Interface: ICommand
// GUID:      {0C733A63-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  [ComImport, GuidAttribute('0C733A63-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  ICommand = interface
    [PreserveSig]
    function Cancel: HResult;
    [PreserveSig]
    function Execute(
      [In, MarshalAs(UnmanagedType.IUnknown)]
      const punkOuter: IUnknown;
      [In, MarshalAs(UnmanagedType.LPStruct)]
      const riid: TGUID;
      pParams: PDBPARAMS;
      [Out, MarshalAs(UnmanagedType.I4)]
      out pcRowsAffected: Integer;
      [Out, MarshalAs(UnmanagedType.Interface)]
      out ppRowset: IUnknown): HResult;
    [PreserveSig]
    function GetDBSession(
      [In, MarshalAs(UnmanagedType.LPStruct)]
      const riid: TGUID;
      [Out, MarshalAs(UnmanagedType.IUnknown)]
      out ppSession: IUnknown): HResult;
  end;

// *********************************************************************//
// Interface: ICommandText
// GUID:      {0C733A27-2A1C-11CE-ADE5-00AA0044773D}
// *********************************************************************//
  [ComImport, GuidAttribute('0C733A27-2A1C-11CE-ADE5-00AA0044773D'), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
  ICommandText = interface(ICommand)
    [PreserveSig]
    function Cancel: HResult;
    [PreserveSig]
    function Execute(
      [In, MarshalAs(UnmanagedType.IUnknown)]
      const punkOuter: IUnknown;
      [In, MarshalAs(UnmanagedType.LPStruct)]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -