📄 sql.asm
字号:
ShellSqlQueryPort proc uses ebx
LOCAL hEnv:DWORD,hDBC:DWORD,hSTMT:DWORD
LOCAL TmpBuff[50]:BYTE
LOCAL hRet:DWORD
or ebx,-1
invoke SQLAllocEnv,addr hEnv
.if ax == SQL_SUCCESS
invoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0
.if ax == SQL_SUCCESS
invoke SQLAllocConnect,hEnv,addr hDBC
.if ax == SQL_SUCCESS
invoke SQLConnect,hDBC,STEXT('Cqbywg'),SQL_NTS,STEXT('WgUser'),SQL_NTS,0,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLAllocHandle,SQL_HANDLE_STMT,hDBC,addr hSTMT
.if ax == SQL_SUCCESS
invoke SQLExecDirect,hSTMT,STEXT('SELECT Port_ID1,Port_ID2,Port_ID3,Port_ID4 FROM T_PortsInfo'),SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLFetch,hSTMT
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
mov TmpBuff,0
invoke SQLGetData,hSTMT,1,SQL_C_ULONG,addr TmpBuff,4,addr hRet
mov eax,dword ptr TmpBuff
mov hLogonPort1,eax
invoke SQLGetData,hSTMT,2,SQL_C_ULONG,addr TmpBuff,4,addr hRet
mov eax,dword ptr TmpBuff
mov hLogonPort2,eax
invoke SQLGetData,hSTMT,3,SQL_C_ULONG,addr TmpBuff,4,addr hRet
mov eax,dword ptr TmpBuff
mov hLogonPort3,eax
invoke SQLGetData,hSTMT,4,SQL_C_ULONG,addr TmpBuff,4,addr hRet
mov eax,dword ptr TmpBuff
mov hLogonPort4,eax
xor ebx,ebx
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_STMT,hSTMT
.endif
.endif
invoke SQLDisconnect,hDBC
invoke SQLFreeHandle,SQL_HANDLE_DBC,hDBC
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_ENV,hEnv
.endif
mov eax,ebx
ret
ShellSqlQueryPort endp
ShellSqlCmpVer proc uses esi ebx lpCommand:DWORD,lpVer:DWORD
LOCAL hEnv:DWORD,hDBC:DWORD,hSTMT:DWORD
LOCAL TmpBuff[50]:BYTE
LOCAL hRet:DWORD
or ebx,-1
xor esi,esi
invoke SQLAllocEnv,addr hEnv
.if ax == SQL_SUCCESS
invoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0
.if ax == SQL_SUCCESS
invoke SQLAllocConnect,hEnv,addr hDBC
.if ax == SQL_SUCCESS
invoke SQLConnect,hDBC,STEXT('Cqbywg'),SQL_NTS,STEXT('WgUser'),SQL_NTS,0,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLAllocHandle,SQL_HANDLE_STMT,hDBC,addr hSTMT
.if ax == SQL_SUCCESS
invoke SQLExecDirect,hSTMT,lpCommand,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLFetch,hSTMT
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
mov TmpBuff,0
invoke SQLGetData,hSTMT,1,SQL_C_CHAR,addr TmpBuff,sizeof TmpBuff,addr hRet
invoke SQLGetData,hSTMT,2,SQL_C_BIT,addr TmpBuff+20,4,addr hRet
mov esi,dword ptr TmpBuff+20
invoke htodw,addr TmpBuff
.if al == byte ptr lpVer
xor ebx,ebx
.endif
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_STMT,hSTMT
.endif
.endif
invoke SQLDisconnect,hDBC
invoke SQLFreeHandle,SQL_HANDLE_DBC,hDBC
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_ENV,hEnv
.endif
mov eax,ebx
mov edx,esi
ret
ShellSqlCmpVer endp
ShellSqlFindUser proc uses ebx lpCommand:DWORD,lpBuff:DWORD
LOCAL hEnv:DWORD,hDBC:DWORD,hSTMT:DWORD
LOCAL TmpBuff[MAX_PATH]:BYTE
LOCAL hRet:DWORD
or ebx,-1
mov eax,lpBuff
mov dword ptr [eax],0
invoke SQLAllocEnv,addr hEnv
.if ax == SQL_SUCCESS
invoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0
.if ax == SQL_SUCCESS
invoke SQLAllocConnect,hEnv,addr hDBC
.if ax == SQL_SUCCESS
invoke SQLConnect,hDBC,STEXT('Cqbywg'),SQL_NTS,STEXT('WgUser'),SQL_NTS,0,SQL_NTS
;invoke SQLDriverConnect,hDBC,hWnd,STEXT('DRIVER={Microsoft Access Driver (*.mdb)};DBQ=F:\MENU\SERVER\Cqbywg.mdb'),SQL_NTS,addr TmpBuff,sizeof TmpBuff,addr hRet,SQL_DRIVER_COMPLETE
;invoke SQLDriverConnect,hDBC,hWnd,STEXT('DSN=Cqbywg;UID=WgUser;PWD=sa;APP=BywgServer;WSID=BYWG;DB=Cqbywg'),SQL_NTS,addr TmpBuff,sizeof TmpBuff,addr hRet,SQL_DRIVER_COMPLETE
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLAllocStmt,hDBC,addr hSTMT
.if ax == SQL_SUCCESS
invoke SQLExecDirect,hSTMT,lpCommand,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLFetch,hSTMT
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
mov eax,lpBuff
mov byte ptr [eax],0
invoke SQLGetData,hSTMT,1,SQL_C_CHAR,lpBuff,50,addr hRet
xor ebx,ebx
.endif
.endif
invoke SQLFreeStmt,hSTMT,SQL_CLOSE
.endif
.endif
invoke SQLDisconnect,hDBC
invoke SQLFreeConnect,hDBC
.endif
.endif
invoke SQLFreeEnv,hEnv
.endif
mov eax,ebx
ret
ShellSqlFindUser endp
ShellSqlQueryUser proc uses ebx lpCommand:DWORD
LOCAL hEnv:DWORD,hDBC:DWORD,hSTMT:DWORD
LOCAL TmpBuff[50]:BYTE
LOCAL hRet:DWORD
or ebx,-1
invoke SQLAllocEnv,addr hEnv
.if ax == SQL_SUCCESS
invoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0
.if ax == SQL_SUCCESS
invoke SQLAllocConnect,hEnv,addr hDBC
.if ax == SQL_SUCCESS
invoke SQLConnect,hDBC,STEXT('Cqbywg'),SQL_NTS,STEXT('WgUser'),SQL_NTS,0,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLAllocHandle,SQL_HANDLE_STMT,hDBC,addr hSTMT
.if ax == SQL_SUCCESS
invoke SQLExecDirect,hSTMT,lpCommand,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLFetch,hSTMT
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
mov TmpBuff,0
invoke SQLGetData,hSTMT,1,SQL_C_CHAR,addr TmpBuff,sizeof TmpBuff,addr hRet
invoke atodw,addr TmpBuff
mov ebx,eax
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_STMT,hSTMT
.endif
.endif
invoke SQLDisconnect,hDBC
invoke SQLFreeHandle,SQL_HANDLE_DBC,hDBC
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_ENV,hEnv
.endif
mov eax,ebx
ret
ShellSqlQueryUser endp
ShellSqlExecCommand proc uses ebx lpCommand:DWORD
LOCAL hEnv:DWORD,hDBC:DWORD,hSTMT:DWORD
LOCAL TmpBuff[128]:BYTE
or ebx,-1
invoke SQLAllocEnv,addr hEnv
.if ax == SQL_SUCCESS
invoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0
.if ax == SQL_SUCCESS
invoke SQLAllocConnect,hEnv,addr hDBC
.if ax == SQL_SUCCESS
invoke SQLConnect,hDBC,STEXT('Cqbywg'),SQL_NTS,STEXT('WgUser'),SQL_NTS,0,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLAllocHandle,SQL_HANDLE_STMT,hDBC,addr hSTMT
.if ax == SQL_SUCCESS
invoke SQLExecDirect,hSTMT,lpCommand,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
xor ebx,ebx
.endif
invoke SQLFreeHandle,SQL_HANDLE_STMT,hSTMT
.endif
.endif
invoke SQLDisconnect,hDBC
invoke SQLFreeHandle,SQL_HANDLE_DBC,hDBC
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_ENV,hEnv
.endif
mov eax,ebx
ret
ShellSqlExecCommand endp
ShellSqlGetTipInfo proc uses ebx lpCommand:DWORD,lpBuff:DWORD
LOCAL hEnv:DWORD,hDBC:DWORD,hSTMT:DWORD,hRet:DWORD
LOCAL TmpBuff[20]:BYTE
or ebx,-1
invoke SQLAllocEnv,addr hEnv
.if ax == SQL_SUCCESS
invoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0
.if ax == SQL_SUCCESS
invoke SQLAllocConnect,hEnv,addr hDBC
.if ax == SQL_SUCCESS
invoke SQLConnect,hDBC,STEXT('Cqbywg'),SQL_NTS,STEXT('WgUser'),SQL_NTS,0,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLAllocHandle,SQL_HANDLE_STMT,hDBC,addr hSTMT
.if ax == SQL_SUCCESS
invoke SQLExecDirect,hSTMT,lpCommand,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLFetch,hSTMT
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLGetData,hSTMT,1,SQL_C_BIT,addr TmpBuff,4,addr hRet
mov eax,lpBuff
mov byte ptr [eax],0
invoke SQLGetData,hSTMT,2,SQL_C_CHAR,lpBuff,100,addr hRet
mov ebx,dword ptr TmpBuff
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_STMT,hSTMT
.endif
.endif
invoke SQLDisconnect,hDBC
invoke SQLFreeHandle,SQL_HANDLE_DBC,hDBC
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_ENV,hEnv
.endif
mov eax,ebx
ret
ShellSqlGetTipInfo endp
ShellSqlIsNetSingle proc uses ebx lpCommand:DWORD
LOCAL hEnv:DWORD,hDBC:DWORD,hSTMT:DWORD,hRet:DWORD
LOCAL TmpBuff[20]:BYTE
or ebx,-1
invoke SQLAllocEnv,addr hEnv
.if ax == SQL_SUCCESS
invoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0
.if ax == SQL_SUCCESS
invoke SQLAllocConnect,hEnv,addr hDBC
.if ax == SQL_SUCCESS
invoke SQLConnect,hDBC,STEXT('Cqbywg'),SQL_NTS,STEXT('WgUser'),SQL_NTS,0,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLAllocHandle,SQL_HANDLE_STMT,hDBC,addr hSTMT
.if ax == SQL_SUCCESS
invoke SQLExecDirect,hSTMT,lpCommand,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLFetch,hSTMT
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
mov TmpBuff,0
invoke SQLGetData,hSTMT,1,SQL_C_CHAR,addr TmpBuff,sizeof TmpBuff,addr hRet
.if TmpBuff == 0
xor ebx,ebx
.else
mov ebx,1
.endif
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_STMT,hSTMT
.endif
.endif
invoke SQLDisconnect,hDBC
invoke SQLFreeHandle,SQL_HANDLE_DBC,hDBC
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_ENV,hEnv
.endif
mov eax,ebx
ret
ShellSqlIsNetSingle endp
ShellSqlQueryDword proc uses ebx lpCommand:DWORD
LOCAL hEnv:DWORD,hDBC:DWORD,hSTMT:DWORD
LOCAL TmpBuff:DWORD
LOCAL hRet:DWORD
or ebx,-1
invoke SQLAllocEnv,addr hEnv
.if ax == SQL_SUCCESS
invoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0
.if ax == SQL_SUCCESS
invoke SQLAllocConnect,hEnv,addr hDBC
.if ax == SQL_SUCCESS
invoke SQLConnect,hDBC,STEXT('Cqbywg'),SQL_NTS,STEXT('WgUser'),SQL_NTS,0,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLAllocHandle,SQL_HANDLE_STMT,hDBC,addr hSTMT
.if ax == SQL_SUCCESS
invoke SQLExecDirect,hSTMT,lpCommand,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLFetch,hSTMT
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
mov TmpBuff,0
invoke SQLGetData,hSTMT,1,SQL_C_ULONG,addr TmpBuff,4,addr hRet
mov ebx,TmpBuff
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_STMT,hSTMT
.endif
.endif
invoke SQLDisconnect,hDBC
invoke SQLFreeHandle,SQL_HANDLE_DBC,hDBC
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_ENV,hEnv
.endif
mov eax,ebx
ret
ShellSqlQueryDword endp
ShellSqlQueryUserSource proc uses ebx lpCommand:DWORD,lpSupply:DWORD,lpIp:DWORD
LOCAL hEnv:DWORD,hDBC:DWORD,hSTMT:DWORD
LOCAL TmpBuff:DWORD
LOCAL hRet:DWORD
or ebx,-1
invoke SQLAllocEnv,addr hEnv
.if ax == SQL_SUCCESS
invoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0
.if ax == SQL_SUCCESS
invoke SQLAllocConnect,hEnv,addr hDBC
.if ax == SQL_SUCCESS
invoke SQLConnect,hDBC,STEXT('Cqbywg'),SQL_NTS,STEXT('WgUser'),SQL_NTS,0,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLAllocHandle,SQL_HANDLE_STMT,hDBC,addr hSTMT
.if ax == SQL_SUCCESS
invoke SQLExecDirect,hSTMT,lpCommand,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLFetch,hSTMT
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
mov eax,lpSupply
mov byte ptr [eax],0
invoke SQLGetData,hSTMT,1,SQL_C_CHAR,lpSupply,50,addr hRet
mov eax,lpSupply
mov byte ptr [eax+6],0
mov eax,lpIp
mov byte ptr [eax],0
invoke SQLGetData,hSTMT,2,SQL_C_CHAR,lpIp,20,addr hRet
mov TmpBuff,0
invoke SQLGetData,hSTMT,3,SQL_C_ULONG,addr TmpBuff,4,addr hRet
mov bl,byte ptr TmpBuff
mov TmpBuff,0
invoke SQLGetData,hSTMT,4,SQL_C_ULONG,addr TmpBuff,4,addr hRet
mov bh,byte ptr TmpBuff
and ebx,0ffffh
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_STMT,hSTMT
.endif
.endif
invoke SQLDisconnect,hDBC
invoke SQLFreeHandle,SQL_HANDLE_DBC,hDBC
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_ENV,hEnv
.endif
mov eax,ebx
ret
ShellSqlQueryUserSource endp
ShellSqlQueryTime proc uses ebx lpCommand:DWORD,lpTime:DWORD,lpNum:DWORD,lpCrd:DWORD
LOCAL hEnv:DWORD,hDBC:DWORD,hSTMT:DWORD
LOCAL hRet:DWORD
or ebx,-1
invoke SQLAllocEnv,addr hEnv
.if ax == SQL_SUCCESS
invoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0
.if ax == SQL_SUCCESS
invoke SQLAllocConnect,hEnv,addr hDBC
.if ax == SQL_SUCCESS
invoke SQLConnect,hDBC,STEXT('Cqbywg'),SQL_NTS,STEXT('WgUser'),SQL_NTS,0,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLAllocHandle,SQL_HANDLE_STMT,hDBC,addr hSTMT
.if ax == SQL_SUCCESS
invoke SQLExecDirect,hSTMT,lpCommand,SQL_NTS
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke SQLFetch,hSTMT
.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFO
invoke MemFill,lpTime,sizeof SYSTEMTIME
invoke SQLGetData,hSTMT,1,SQL_C_DATE,lpTime,sizeof SYSTEMTIME,addr hRet
mov eax,lpNum
mov dword ptr [eax],0
invoke SQLGetData,hSTMT,2,SQL_C_ULONG,lpNum,4,addr hRet
mov eax,lpCrd
mov byte ptr [eax],0
invoke SQLGetData,hSTMT,3,SQL_C_CHAR,lpCrd,50,addr hRet
xor ebx,ebx
.elseif ax == SQL_NO_DATA
mov ebx,1
.endif
.elseif ax == SQL_NO_DATA
mov ebx,1
.endif
invoke SQLFreeHandle,SQL_HANDLE_STMT,hSTMT
.endif
.endif
invoke SQLDisconnect,hDBC
invoke SQLFreeHandle,SQL_HANDLE_DBC,hDBC
.endif
.endif
invoke SQLFreeHandle,SQL_HANDLE_ENV,hEnv
.endif
mov eax,ebx
ret
ShellSqlQueryTime endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -