📄 samples.bas
字号:
Attribute VB_Name = "Module1"
Option Explicit
' Function name: ReturnDataPath
' Return type: String
' Dependencies: Uses InStrL function
'
' Description: Returns the full path to the specified data directory.
'
' Args: dataDir - Data to return path for
'
Public Function ReturnDataPath(dataDir As String) As String
Dim sPath As String
Dim iLastPos As Integer
sPath = App.Path
iLastPos = InStrL(sPath, "\")
ReturnDataPath = Left(sPath, iLastPos) + "..\Data\" + dataDir
End Function
' Function name: InStrL
' Return type: Integer
' Dependencies: None
'
' Description: Returns the character position of the last occurrence
' of srchString in inString. If there is no match, 0 is
' returned. This provides the same functionality that VB's
' InStr function provides, except that it searches backwards.
'
' Args: inString - String to examine
' srchString - String to search for
'
Public Function InStrL(inString As String, srchString As String) As Integer
Dim iLastPos As Integer 'Set to 0 on initialization
' Check srchString -- a 0-length string will match every time
If Len(srchString) Then
' Set iLastPos to the last matching position
Dim iCurPos As Integer
Do
iLastPos = iCurPos
iCurPos = InStr(iCurPos + 1, inString, srchString, vbTextCompare)
Loop Until iCurPos = 0
End If
InStrL = iLastPos
End Function
' Function name: ConnectErrorMsg
' Return type: String
' Dependencies: None
'
' Description: Defines an appropriate error message for
' the Data Connection object, including
' errors from SDE (negative integers).
'
' Args: errNum - Integer representing ConnectionErrorConstant
' returned from DataConnection.ConnectError
'
Public Function ConnectErrorMsg(errNum As Integer) As String
Select Case errNum
'Generic Error Messages
Case moNoError: ConnectErrorMsg = "No Error"
Case moUnknownError: ConnectErrorMsg = "Unknown error"
Case moAccessDenied: ConnectErrorMsg = "Access denied"
Case moInvalidUser: ConnectErrorMsg = "Invalid user"
Case moNetworkTimeout: ConnectErrorMsg = "Network timeout"
Case moInvalidDatabase: ConnectErrorMsg = "Invalid database"
Case moTasksExceeded: ConnectErrorMsg = "Tasks exceeded"
Case moFileNotFound: ConnectErrorMsg = "File not found"
Case moInvalidDirectory: ConnectErrorMsg = "Invalid directory"
Case moHostUnknown: ConnectErrorMsg = "Unknown host"
'SDE Error Messages
Case moSE_FAILURE: ConnectErrorMsg = "Unspecified SDE error."
Case moSE_INVALID_LAYERINFO_OBJECT: ConnectErrorMsg = "LAYERINFO pointer not initialized."
Case moSE_NO_ANNOTATION: ConnectErrorMsg = "The given shape has no annotation"
Case moSE_FINISHED: ConnectErrorMsg = "STREAM LOADING OF SHAPES FINISHED"
Case moSE_SDE_NOT_STARTED: ConnectErrorMsg = "SDE NOT STARTED CANNOT PERFORM FUNCTION"
Case moSE_UNCHANGED: ConnectErrorMsg = "THE SPECIFIED SHAPE WAS LEFT UNCHANGED"
Case moSE_CONNECTIONS_EXCEEDED: ConnectErrorMsg = "THE NUMBER OF SERVER CONNECTIONS IS @ MAXIMUM"
Case moSE_LOGIN_NOT_ALLOWED: ConnectErrorMsg = "IOMGR NOT ACCEPTING CONNECTION REQUESTS"
Case moSE_INVALID_USER: ConnectErrorMsg = "CANNOT VALIDATE THE SPECIFIED USER AND PASSWORD"
Case moSE_NET_FAILURE: ConnectErrorMsg = "NETWORK I/O OPERATION FAILED"
Case moSE_NET_TIMEOUT: ConnectErrorMsg = "NETWORK I/O TIMEOUT"
Case moSE_OUT_OF_SVMEM: ConnectErrorMsg = "SERVER TASK CANNOT ALLOCATE NEEDED MEMORY"
Case moSE_OUT_OF_CLMEM: ConnectErrorMsg = "CLIENT TASK CANNOT ALLOCATE NEEDED MEMORY"
Case moSE_OUT_OF_CONTEXT: ConnectErrorMsg = "FUNCTION CALL IS OUT OF CONTEXT"
Case moSE_NO_ACCESS: ConnectErrorMsg = "NO ACCESS TO OBJECT"
Case moSE_TOO_MANY_LAYERS: ConnectErrorMsg = "Exceeded max_layers in giomgr.defs."
Case moSE_NO_LAYER_SPECIFIED: ConnectErrorMsg = "MISSING LAYER SPECIFICATION"
Case moSE_LAYER_LOCKED: ConnectErrorMsg = "SPECIFIED LAYER IS LOCKED"
Case moSE_LAYER_EXISTS: ConnectErrorMsg = "SPECIFIED LAYER ALREADY EXISTS"
Case moSE_LAYER_NOEXIST: ConnectErrorMsg = "SPECIFIED LAYER DOES NOT EXIST"
Case moSE_LAYER_INUSE: ConnectErrorMsg = "SPECIFIED LAYER IS USE BY ANOTHER USER"
Case moSE_FID_NOEXIST: ConnectErrorMsg = "SPECIFIED SHAPE (LAYER FID) DOESN'T EXIST"
Case moSE_FID_EXISTS: ConnectErrorMsg = "SPECIFIED SHAPE (LAYER FID) EXISTS"
Case moSE_LAYER_MISMATCH: ConnectErrorMsg = "Both layers must be the same for this"
Case moSE_NO_PERMISSIONS: ConnectErrorMsg = "NO PERMISSION TO PERFORM OPERATION"
Case moSE_INVALID_NOT_NULL: ConnectErrorMsg = "COLUMN HAS NOT NULL CONSTRAINT."
Case moSE_INVALID_SHAPE: ConnectErrorMsg = "INVALID SHAPE CANNOT BE VERIFIED"
Case moSE_INVALID_LAYER_NUMBER: ConnectErrorMsg = "MAP LAYER NUMBER OUT OF RANGE"
Case moSE_INVALID_ENTITY_TYPE: ConnectErrorMsg = "INVALID ENTITY TYPE"
Case moSE_INVALID_SEARCH_METHOD: ConnectErrorMsg = "INVALID SEARCH METHOD"
Case moSE_INVALID_ETYPE_MASK: ConnectErrorMsg = "INVALID ENTITY TYPE MASK"
Case moSE_BIND_CONFLICT: ConnectErrorMsg = "BIND/SET/GET MIS-MATCH"
Case moSE_INVALID_GRIDSIZE: ConnectErrorMsg = "INVALID GRID SIZE"
Case moSE_INVALID_LOCK_MODE: ConnectErrorMsg = "INVALID LOCK MODE"
Case moSE_ETYPE_NOT_ALLOWED: ConnectErrorMsg = "ENTITY TYPE OF SHAPE IS NOT ALLOWED IN LAYER"
Case moSE_TOO_MANY_POINTS: ConnectErrorMsg = "Exceeded max points specified."
Case moSE_TABLE_NOEXIST: ConnectErrorMsg = "DBMS TABLE DOES NOT EXIST"
Case moSE_ATTR_NOEXIST: ConnectErrorMsg = "SPECIFIED ATTRIBUTE COLUMN DOESN'T EXIST"
Case moSE_LICENSE_FAILURE: ConnectErrorMsg = "Underlying license manager problem."
Case moSE_OUT_OF_LICENSES: ConnectErrorMsg = "No more SDE licenses available."
Case moSE_INVALID_COLUMN_VALUE: ConnectErrorMsg = "VALUE EXCEEDS VALID RANGE"
Case moSE_INVALID_WHERE: ConnectErrorMsg = "USER SPECIFIED WHERE CLAUSE IS INVALID"
Case moSE_INVALID_SQL: ConnectErrorMsg = "USER SPECIFIED SQL CLAUSE IS INVALID"
Case moSE_LOG_NOEXIST: ConnectErrorMsg = "SPECIFIED LOG FILE DOES NOT EXIST"
Case moSE_LOG_NOACCESS: ConnectErrorMsg = "UNABLE TO ACCESS SPECIFIED LOGFILE"
Case moSE_LOG_NOTOPEN: ConnectErrorMsg = "SPECIFIED LOGFILE IS NOT OPEN FOR I/O"
Case moSE_LOG_IO_ERROR: ConnectErrorMsg = "I/O ERROR USING LOGFILE"
Case moSE_NO_SHAPES: ConnectErrorMsg = "NO SHAPES SELECTED OR USED IN OPERATION"
Case moSE_NO_LOCKS: ConnectErrorMsg = "NO LOCKS DEFINED"
Case moSE_LOCK_CONFLICT: ConnectErrorMsg = "LOCK REQUEST CONFLICTS W/ ANOTHER ESTABLISHED LOCK"
Case moSE_OUT_OF_LOCKS: ConnectErrorMsg = "MAXIMUM LOCKS ALLOWED BY SYSTEM ARE IN USE"
Case moSE_DB_IO_ERROR: ConnectErrorMsg = "DATABASE LEVEL I/O ERROR OCCURRED"
Case moSE_STREAM_IN_PROGRESS: ConnectErrorMsg = "SHAPE/FID STREAM NOT FINISHED CAN'T EXECUTE"
Case moSE_INVALID_COLUMN_TYPE: ConnectErrorMsg = "INVALID COLUMN DATA TYPE"
Case moSE_TOPO_ERROR: ConnectErrorMsg = "TOPOLOGICAL INTEGRITY ERROR"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -