m2m macro p1,p2
push p2
pop p1
endm
.data
szBuffer db 256 dup(0)
szFormat db '%d',0dh,0ah,0
Connection struct
hEnv dword 0 ;建立的环境的句柄
hConn dword 0 ;建立的连接的句柄
pInConnectString dword 0 ;输入的连接字符串缓冲区的指针
inConnectStringLength dword 0 ;输入的连接字符串缓冲区的长度
pOutConnStr dword 0 ;输出的连接字符串缓冲区的指针
outConnStrLength dword 0 ;输出的连接字符串缓冲区的长度
pOutConnStrLength dword 0 ;输出的连接字符串的实际长度
Connection ends
Parameter struct
pParamValue dword 0 ;参数缓冲区的指针
pParamStrL dword 0 ;参数缓冲区的实际长度的指针
paramStrL dword 0 ;参数缓冲区的实际长度
paramValueSize dword 0 ;对应的参数的数据库中的长度
paramType dword 0 ;参数对应的C类型
paramDirection dword 0 ;参数的输入输出类型(INPUT,OUTPUT,INPUT_OUTPUT)
paramDType dword 0 ;数据库中对应的参数的类型
paramDSize dword 0 ;数据库中对应的参数的长度
paramDeimalSize dword 0 ;数据库中对应的参数的DEIMAL长度
Parameter ends
.code
DEBUG proc val:dword
invoke wsprintf,addr szBuffer,addr szFormat,val
invoke MessageBox,NULL,addr szBuffer,NULL,MB_OK
ret
DEBUG endp
DEBUG2 proc pval:dword
invoke MessageBox,NULL,pval,NULL,MB_OK
ret
DEBUG2 endp
ODBCConnect proc pConnection:dword
local theDiagState[50]:byte
local theNativeState:dword
local theMessageText[1024]:byte
local iOutputNo:word
mov edx,pConnection
push edx
invoke SQLAllocHandle, SQL_HANDLE_ENV, SQL_NULL_HANDLE,addr (Connection ptr [edx]).hEnv
pop edx
.if ax==SQL_SUCCESS || ax==SQL