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

📄 sqlole.h

📁 希望我上传的这些东西可以对搞编程的程序员有点小小的帮助!谢谢!
💻 H
📖 第 1 页 / 共 5 页
字号:
/////////////////////////////////////////////////////////////////////////////////////////
// Header file for SQLOLE C/C++ Client Component Object interfaces.
// Copyright 1994-1995 Microsoft Corporation.
/////////////////////////////////////////////////////////////////////////////////////////
#ifndef _SQLOLE_H_
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
#define _SQLOLE_H_

// SQLOLE versions supported for this header file.  
#define SQLOLEVERSION_600		0x00060000
#define SQLOLEVERSION_650		0x00063200

// Current version of sqlole for this header file (matches sp_MSSQLOLE_version).
#define SQLOLEVERSION_CURRENT	SQLOLEVERSION_650

/////////////////////////////////////////////////////////////////////////////////////////
// Constant enumerations.
/////////////////////////////////////////////////////////////////////////////////////////
#ifndef _SQLOLE_CONSTANTS_
#define _SQLOLE_CONSTANTS_

#ifdef _SQLOLE_ODL_		// Generate helpids if in ODL file.
#define SQLOLE_HELPID(id) [helpcontext(H_##id)]
#else
#define SQLOLE_HELPID(id)
#endif

typedef SQLOLE_HELPID(SQLOLE_OBJECT_TYPE) enum {
	SQLOLEObj_Unknown = 16384,		// Make it the only bit set
	SQLOLEObj_Application = 0,

	// Database objects, value is power(2, sysobjects.sysstat & 0x0f), plus UDDTs in 0.
	// These values can be bitmasked together for object listings.
	SQLOLEObj_UserDefinedDatatype = 1,
	SQLOLEObj_SystemTable = 2,
	SQLOLEObj_View = 4,
	SQLOLEObj_UserTable = 8,
	SQLOLEObj_StoredProcedure = 16,
	SQLOLEObj_Default = 64,
	SQLOLEObj_Rule = 128,
	SQLOLEObj_Trigger = 256,
	SQLOLEObj_AllDatabaseUserObjects = 0x01fd,
	SQLOLEObj_AllDatabaseObjects = 0x01ff,

	// Other Database objects (not in sysobjects)
	SQLOLEObj_SystemDatatype = 10021,
	SQLOLEObj_User = 10022,
	SQLOLEObj_Group = 10023,
	SQLOLEObj_Index = 10024,
	SQLOLEObj_Key = 10025,
	SQLOLEObj_Column = 10026,
	SQLOLEObj_DBObject = 10027,
	SQLOLEObj_DBOption = 10028,
	SQLOLEObj_ProcedureParameter = 10029,
	SQLOLEObj_Permission = 10033,
	SQLOLEObj_IntegratedSecurity = 10034,
	SQLOLEObj_Check = 10035,
	SQLOLEObj_DRIDefault = 10036,

	// Objects not in databases.
	SQLOLEObj_SQLServer = 10050,
	SQLOLEObj_Database = 10051,
	SQLOLEObj_Device = 10052,
	SQLOLEObj_Login = 10054,
	SQLOLEObj_Language = 10055,
	SQLOLEObj_RemoteServer = 10056,
	SQLOLEObj_RemoteLogin = 10057,

	SQLOLEObj_Configuration = 10059,
	SQLOLEObj_ConfigValue = 10060,
	SQLOLEObj_AlertSystem = 10061,
	SQLOLEObj_Executive = 10062,
	SQLOLEObj_QueryResults = 10063,
	SQLOLEObj_TransactionLog = 10064,
	SQLOLEObj_Registry = 10065,
	SQLOLEObj_Transfer = 10066,
	SQLOLEObj_Backup = 10067,
	SQLOLEObj_Task = 10068,
	SQLOLEObj_Alert = 10069,
	SQLOLEObj_Operator = 10070,
	SQLOLEObj_HistoryFilter = 10071,
	SQLOLEObj_Publication = 10072,
	SQLOLEObj_Article = 10073,
	SQLOLEObj_Subscription = 10074,
	SQLOLEObj_SubscriberInfo = 10075,
	SQLOLEObj_AutoProperty = 10076,		// Automation property or properties collection.
	SQLOLEObj_ServerGroup = 10077,
	SQLOLEObj_RegisteredServer = 10078,
	SQLOLEObj_BulkCopy = 10079
} SQLOLE_OBJECT_TYPE;

typedef SQLOLE_HELPID(SQLOLE_KEY_TYPE) enum {
	SQLOLEKey_Unknown = 0,
	SQLOLEKey_Primary = 1,
	SQLOLEKey_Unique = 2,
	SQLOLEKey_Foreign = 3
} SQLOLE_KEY_TYPE;

typedef SQLOLE_HELPID(SQLOLE_DEVICE_TYPE) enum {
	SQLOLEDevice_Unknown = 100,
	SQLOLEDevice_Database = 0,
	SQLOLEDevice_DiskDump = 2,
	SQLOLEDevice_FloppyADump = 3,
	SQLOLEDevice_FloppyBDump = 4,
	SQLOLEDevice_TapeDump = 5,
	SQLOLEDevice_PipeDump = 6,
	SQLOLEDevice_CDROM = 7
} SQLOLE_DEVICE_TYPE;

typedef SQLOLE_HELPID(SQLOLE_MIRROR_TYPE) enum {
	// Mirror states:
	// 	None = no mirror specified
	//	Inactive = mirror specified but not active
	//  RunningOnMirror = mirror device is functioning as the active device (after SwitchToMirrorTemp)
	//	Active = mirror is specified and actively mirroring the device.
	SQLOLEMirror_None = 0,
	SQLOLEMirror_Inactive = 64,
	SQLOLEMirror_RunningOnMirror = 320,
	SQLOLEMirror_Active = 576
} SQLOLE_MIRROR_TYPE;

typedef SQLOLE_HELPID(SQLOLE_PRIVILEGE_TYPE) enum {
	SQLOLEPriv_Unknown = 0,

	// Privilege values, different from sysprotects as we need to bitmask.
	// Object privileges.
	SQLOLEPriv_Select = 1,
	SQLOLEPriv_Insert = 2,
	SQLOLEPriv_Update = 4,
	SQLOLEPriv_Delete = 8,
	SQLOLEPriv_Execute = 16,
	SQLOLEPriv_References = 32,
	SQLOLEPriv_AllObjectPrivs = 63,
	
	// Database (statement) privileges.
	SQLOLEPriv_CreateTable = 128,
	SQLOLEPriv_CreateDatabase = 256,
	SQLOLEPriv_CreateView = 512,
	SQLOLEPriv_CreateProcedure = 1024,
	SQLOLEPriv_DumpDatabase = 2048,
	SQLOLEPriv_CreateDefault = 4096,
	SQLOLEPriv_DumpTransaction = 8192,
	SQLOLEPriv_CreateRule = 16384,
	SQLOLEPriv_AllDatabasePrivs = 32640
} SQLOLE_PRIVILEGE_TYPE;

typedef SQLOLE_HELPID(SQLOLE_PROCEDURE_TYPE) enum {
	SQLOLEProc_Unknown = 0,
	SQLOLEProc_Standard = 1,
	SQLOLEProc_Extended = 2,
	SQLOLEProc_Macro = 3,
	SQLOLEProc_ReplicationFilter = 4
} SQLOLE_PROCEDURE_TYPE;

// Trigger types may be OR'd together.
typedef SQLOLE_HELPID(SQLOLE_TRIGGER_TYPE) enum {
	SQLOLETrig_Unknown = 0,
	SQLOLETrig_Insert = 1,
	SQLOLETrig_Update = 2,
	SQLOLETrig_Delete = 4,
	SQLOLETrig_All = 7
} SQLOLE_TRIGGER_TYPE;

typedef SQLOLE_HELPID(SQLOLE_INDEX_TYPE) enum {							// SQLOLE Internal:  sync with ntinc\index.h
	// Index type values as in sysindexes.status.
	SQLOLEIndex_Default = 0x0000,
	SQLOLEIndex_IgnoreDupKey = 0x0001,
	SQLOLEIndex_Unique = 0x0002,
	SQLOLEIndex_IgnoreDupRow = 0x0004,
	SQLOLEIndex_Clustered = 0x0010,
	SQLOLEIndex_AllowDupRow = 0x0040,
	SQLOLEIndex_SortedData = 0x0200,
	SQLOLEIndex_SortedDataReorg = 0x2000,	// 6.0-only; sorted-data with reorganization
	SQLOLEIndex_Valid = 0x2257,				// Any of foregoing (writable) types
	SQLOLEIndex_DRIPrimaryKey = 0x0800,		// 6.0-only, readonly; DRI-generated types
	SQLOLEIndex_DRIUniqueKey = 0x1000,
	SQLOLEIndex_DRIIndex = 0x1800			// Index implements DRI (DRIPrimaryKey | DRIUniqueKey)
} SQLOLE_INDEX_TYPE;

typedef SQLOLE_HELPID(SQLOLE_QUERY_DATATYPE) enum {
   // Indexed as per ..\common\inc\sql.hpp and sqlfront.h datatype constants.
	SQLOLE_DTypeUnknown = 0,
	SQLOLE_DTypeChar 	= 0x2f,
	SQLOLE_DTypeText 	= 0x23,
	SQLOLE_DTypeVarchar 	= 0x27,
	SQLOLE_DTypeVarBinary= 0x25,
	SQLOLE_DTypeBinary 	= 0x2d,
	SQLOLE_DTypeImage 	= 0x22,
	SQLOLE_DTypeFloat4 	= 0x3b,
	SQLOLE_DTypeFloat8 	= 0x3e,
	SQLOLE_DTypeInt1 	= 0x30,
	SQLOLE_DTypeInt2 	= 0x34,
	SQLOLE_DTypeInt4		= 0x38,
	SQLOLE_DTypeMoney4	= 0x7a,
	SQLOLE_DTypeMoney	= 0x3c,
	SQLOLE_DTypeDateTime	= 0x3d,
	SQLOLE_DTypeDateTime4= 0x3a,
	SQLOLE_DTypeBit		= 0x32
} SQLOLE_QUERY_DATATYPE;

typedef SQLOLE_HELPID(SQLOLE_AUDIT_TYPE) enum {
	SQLOLEAudit_None = 0,
	SQLOLEAudit_Success = 1,
	SQLOLEAudit_Failure = 2,
	SQLOLEAudit_All = 3
} SQLOLE_AUDIT_TYPE;

typedef SQLOLE_HELPID(SQLOLE_SECURITY_TYPE) enum {
	SQLOLESecurity_Min = 0,
	SQLOLESecurity_Normal = 0,
	SQLOLESecurity_Integrated = 1,
	SQLOLESecurity_Mixed = 2,
	SQLOLESecurity_Max = 2
} SQLOLE_SECURITY_TYPE;

typedef SQLOLE_HELPID(SQLOLE_MEDIA_TYPE) enum {
	SQLOLEMedia_Floppy = 1,
	SQLOLEMedia_FixedDisk = 2,
	SQLOLEMedia_Tape = 4,
	SQLOLEMedia_CDROM = 8,
	SQLOLEMedia_All = 15
} SQLOLE_MEDIA_TYPE;

typedef SQLOLE_HELPID(SQLOLE_PERFMON_TYPE) enum {
	SQLOLEPerfmon_None = 1000,					// No perfmon integration
	SQLOLEPerfmon_MinSet = 0,
	SQLOLEPerfmon_Continuous = 0,
	SQLOLEPerfmon_OnDemand = 1,
	SQLOLEPerfmon_MaxSet = 1
} SQLOLE_PERFMON_TYPE;

typedef SQLOLE_HELPID(SQLOLE_STARTSRV_TYPE) enum {
	SQLOLEStart_NoServiceControl = 1,
	SQLOLEStart_NTErrorLogging = 2,
	SQLOLEStart_SingleUser = 4,
	SQLOLEStart_StartAndConnect = 8,
	SQLOLEStart_RealTime = 16,
	SQLOLEStart_Defaults = 10					// ServiceControl, StartAndConnect, and NTErrorLogging
} SQLOLE_STARTSRV_TYPE;

typedef SQLOLE_HELPID(SQLOLE_DBSTATUS_TYPE) enum {
	SQLOLEDBStat_Normal = 0x0000,
	SQLOLEDBStat_Loading = 0x0020,
	SQLOLEDBStat_Recovering = 0x00c0,			// 0x40 | 0x80
	SQLOLEDBStat_Suspect = 0x0100,
	SQLOLEDBStat_Offline = 0x0200,
	SQLOLEDBStat_Inaccessible = 0x03e0,			// Loading | Recovering | Suspect | Offline
	SQLOLEDBStat_EmergencyMode = 0x8000,
	SQLOLEDBStat_All = 0x83e0
} SQLOLE_DBSTATUS_TYPE;

typedef SQLOLE_HELPID(SQLOLE_COPYDATA_TYPE) enum {
	SQLOLECopyData_False = 0,
	SQLOLECopyData_Replace = 1,
	SQLOLECopyData_Append = 2
} SQLOLE_COPYDATA_TYPE;

typedef SQLOLE_HELPID(SQLOLE_DATAFILE_TYPE) enum {
	// Bulk-copy datafile options (Table/View.Export and Table.Import).  These are mutually exclusive.
	SQLOLEDataFile_CommaDelimitedChar = 		0x00000001,	// ColumnDelimiter == Comma, RowDelimiter == <CRLF>
	SQLOLEDataFile_Default = 					0x00000001,	// Default == csv
	SQLOLEDataFile_TabDelimitedChar = 			0x00000002,	// ColumnDelimiter == <TAB>, RowDelimiter == <CRLF>
	SQLOLEDataFile_SpecialDelimitedChar = 		0x00000003,	// Set BulkCopy.ColumnDelimiter and .RowDelimiter
	SQLOLEDataFile_NativeFormat = 				0x00000004,	// Use native datatype formats
	SQLOLEDataFile_UseFormatFile = 				0x00000005,	// Use an existing format file.
} SQLOLE_DATAFILE_TYPE;

typedef SQLOLE_HELPID(SQLOLE_STATUSINFO_TYPE) enum {
	SQLOLEStatInfo_Unknown = 0,					// Initialization value, not valid as a parameter
	SQLOLEStatInfo_DatabaseStatus = 0x0001,		// Database.Status
	SQLOLEStatInfo_DatabaseSpace = 0x0002,		// Database.SpaceAvailable
	SQLOLEStatInfo_AutoVerifyConnection = 0x0004,	// Server.VerifyConnection done automatically.
	SQLOLEStatInfo_All = 0x0007					// All the foregoing
} SQLOLE_STATUSINFO_TYPE;

typedef SQLOLE_HELPID(SQLOLE_SCRIPT_TYPE) enum {
	// What's included in the Script method output.
	SQLOLEScript_Default = 0x0004,				// Object creation only
	SQLOLEScript_Drops = 0x0001,				// Include object drops
	SQLOLEScript_ObjectPermissions = 0x0002,	// Include object permissions
	SQLOLEScript_PrimaryObject = 0x0004,		// Include object creation
	SQLOLEScript_ClusteredIndexes = 0x0008,		// Include clustered index creation (table only)
	SQLOLEScript_Triggers = 0x0010,				// Include trigger creation (table only)
	SQLOLEScript_DatabasePermissions = 0x0020,	// Database (statement) permissions
	SQLOLEScript_Permissions = 0x0022,			// Both database and object permissions (for scripting users).
	SQLOLEScript_ToFileOnly = 0x0040,			// If not set, a string is returned (if file nonnull, both are done)
	SQLOLEScript_Bindings = 0x0080,				// Include rule/default bindings (table only)
	SQLOLEScript_AppendToFile = 0x0100,			// Append to output file if it already exists.
	SQLOLEScript_NoDRI = 0x0200,				// Do not include DRI (intended for use if targeting pre-6.0 server with scripts)
	SQLOLEScript_UDDTsToBaseType = 0x0400,		// Convert UserDefinedDatatypes to base type when creating columns (table only)
	SQLOLEScript_42Syntax = 0x0800,				// Use SQL 4.2x syntax (convert numerics, skip identity, etc.)
	SQLOLEScript_ODBCSyntax = 0x0E00,			// Use ODBC syntax (strip SQL-specifics); includes NoDRI, UDDTsToBaseTypes.
	SQLOLEScript_IncludeIfNotExists = 0x1000,	// Include "if not exists" on object creation.
	SQLOLEScript_NonClusteredIndexes = 0x2000,	// Include nonclustered index creation (table only)
	SQLOLEScript_Indexes = 0x12008,				// Include all index creation (table only)
	SQLOLEScript_Aliases = 0x4000,				// For users, script aliases
	SQLOLEScript_NoCommandTerm = 0x8000,		// Do not append "GO" to commands.
	SQLOLEScript_DRIIndexes = 0x10000,			// Script DRI-generated indexes as indexes if NoDRI is specified.
	SQLOLEScript_IncludeHeaders = 0x20000,		// Include descriptive header in individual object script output.
	SQLOLEScript_OwnerQualify = 0x40000,		// Owner-qualify DROP statements (and CREATE where possible).
	SQLOLEScript_TimestampToBinary = 0x80000,	// Convert timestamp columns to binary(8) (for replication, etc.).
	SQLOLEScript_SortedData = 0x100000, 		// If the index or constraint was clustered, append sorted_data
	SQLOLEScript_SortedDataReorg = 0x200000,	// Same as SQLOLEScript_SortedData, but Reorg is used to preserve fillfactor.

	SQLOLEScript_TransferDefault = 0x670ff,		//The default script type for Transfer. This is combination of following flags:
												//SQLOLEScript_PrimaryObject | SQLOLEScript_Bindings | SQLOLEScript_ClusteredIndexes | SQLOLEScript_NonClusteredIndexes | 
												//SQLOLEScript_Triggers| SQLOLEScript_ToFileOnly|SQLOLEScript_Permissions| SQLOLEScript_IncludeHeaders|
												//SQLOLEScript_Aliases|SQLOLEScript_IncludeIfNotExists|SQLOLEScript_OwnerQualify

	// DRI-restrictive flags.  These may be combined with PrimaryObject as desired.
	// These are to be used to include or exclude specific DRI components, such
	// as for multi-pass scripting.
	SQLOLEScript_DRI_NonClustered = 	0x00400000,
	SQLOLEScript_DRI_Clustered = 		0x00800000,
	SQLOLEScript_DRI_Checks = 			0x01000000,
	SQLOLEScript_DRI_Defaults = 		0x02000000,
	SQLOLEScript_DRI_UniqueKeys = 		0x04000000,
	SQLOLEScript_DRI_ForeignKeys = 		0x08000000,
	SQLOLEScript_DRI_PrimaryKey = 		0x10000000,
	SQLOLEScript_DRI_AllKeys =			0x1c000000, // Bitmask of all key types (PK, FK, Unique).
	SQLOLEScript_DRI_AllConstraints = 	0x1f000000,	// Bitmask of all constraint types (PK, FK, Unique, Check, Default).
	SQLOLEScript_DRI_All = 				0x1fc00000,	// All the foregoing (specifying this and not PrimaryObject gets just DRI output).

	SQLOLEScript_DRIWithNoCheck = 		0x20000000,	// Script DRI with nocheck (not included in _DRI_All).
	SQLOLEScript_NoIdentity = 			0x40000000,	// Script with no IDENTITY attribute (e.g. for Replication).

	// Scripts with quoted identifiers. Also will cause Transfer to SET QUOTED_IDENTIFIER ON on the destination.
	SQLOLEScript_UseQuotedIdentifiers =	0x80000000
} SQLOLE_SCRIPT_TYPE;

⌨️ 快捷键说明

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