?? note.txt
字號:
.DATA
.DATA?
hAppendStmt HANDLE ?
hCustStmt HANDLE ?
hStmt DD ?
TiGan db ROWS*11 dup (?)
TiGan_Len dd ROWS dup (?)
DaAnA db ROWS dup (?)
DaAnA_Len dd ROWS dup (?)
DaAnB db ROWS dup (?)
DaAnB_Len dd ROWS dup (?)
DaAnC db ROWS dup (?)
DaAnC_Len dd ROWS dup (?)
ZhQuDaAn dd ROWS dup (?)
ZhQuDaAn_Len dd ROWS dup (?)
bSave db ?
TiGanBuffer db 255 dup (?)
TiGanLen dd ?
DaAnABuffer db 255 dup (?)
DaAnALen dd ?
DaAnBBuffer db 255 dup (?)
DaAnBLen dd ?
DaAnCBuffer db 255 dup (?)
DaAnCLen dd ?
.code
ButtEnable proc log:dword
invoke EnableWindow,hMODIFY,log
invoke EnableWindow,hDELETE,log
invoke EnableWindow,hFIRST,log
invoke EnableWindow,hNEXT,log
invoke EnableWindow,hPRE,log
invoke EnableWindow,hLAST,log
ret
ButtEnable endp
CreateStatementHandle proc
invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt
invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hAppendStmt
invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hCustStmt
invoke SQLSetStmtAttr,hStmt,SQL_ATTR_CONCURRENCY,SQL_CONCUR_ROWVER,0
invoke SQLSetStmtAttr,hStmt,SQL_ATTR_CURSOR_TYPE,SQL_CURSOR_KEYSET_DRIVEN,0
invoke SQLSetStmtAttr,hStmt,SQL_ATTR_ROW_ARRAY_SIZE,ROWS,0
invoke SQLSetStmtAttr,hStmt,SQL_ATTR_ROW_STATUS_PTR,addr RowStatusArray,0
ret
CreateStatementHandle endp
BindColVariable proc hS:DWORD
invoke SQLBindCol,hS,1,SQL_C_CHAR,addr TiGan,255,addr TiGan_Len
invoke SQLBindCol,hS,2,SQL_C_CHAR,addr DaAnA,255,addr DaAnA_Len
invoke SQLBindCol,hS,3,SQL_C_CHAR,addr DaAnB,255,addr DaAnB_Len
invoke SQLBindCol,hS,4,SQL_C_CHAR,addr DaAnC,255,addr DaAnC_Len
invoke SQLBindCol,hS,5,SQL_C_CHAR,addr ZhQuDaAn,255,addr ZhQuDaAn_Len
ret
BindColVariable endp
DisplayRecordAtControl proc uses esi hDlg:DWORD,Num:DWORD
dec Num
lea esi,TiGan
xor eax,eax
mov eax,255
mul Num
add esi,eax
invoke SetWindowText,hTiGan,esi
lea esi,DaAnA
xor eax,eax
mov eax,255
mul Num
add esi,eax
invoke SetWindowText,hDaAnA,esi
lea esi,DaAnB
xor eax,eax
mov eax,255
mul Num
add esi,eax
invoke SetWindowText,hDaAnB,esi
lea esi,DaAnC
xor eax,eax
mov eax,255
mul Num
add esi,eax
invoke SetWindowText,hDaAnC,esi
lea esi,ZhQuDaAn
mov al,1
mul Num
add esi,eax
.if byte ptr [esi]
; invoke SendMessage,hZhQuDaAn,CB_SETCURSEL,0,0
.else
; invoke SendMessage,hZhQuDaAn,CB_SETCURSEL,1,0
.endif
ret
DisplayRecordAtControl endp
RefreshList proc hWnd:DWORD
invoke SQLCloseCursor,hStmt
invoke OpenRecordset,hWnd
; invoke SendMessage,hList,LVM_DELETEALLITEMS,0,0
mov row,0
invoke SQLFetchScroll,hStmt,SQL_FETCH_FIRST,0
mov retcode,ax
.while (retcode!=SQL_ERROR && retcode!=SQL_NO_DATA)
; invoke ListBoxDisplayRec
invoke SQLFetchScroll,hStmt,SQL_FETCH_NEXT,0
mov retcode,ax
.endw
invoke SQLFetchScroll,hStmt,SQL_FETCH_FIRST,0
ret
RefreshList endp
BindParamVariable proc hs:DWord
invoke SQLBindParameter,hs, 1, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, 254, 0, addr TiGanBuffer, sizeof TiGanBuffer, addr TiGanLen
invoke SQLBindParameter,hs, 2, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, 254, 0, addr DaAnABuffer, sizeof DaAnABuffer, addr DaAnALen
invoke SQLBindParameter,hs, 3, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, 254, 0, addr DaAnBBuffer, sizeof DaAnBBuffer, addr DaAnBLen
invoke SQLBindParameter,hs, 4, SQL_PARAM_INPUT, SQL_C_CHAR,SQL_CHAR, 254, 0, addr DaAnCBuffer, sizeof DaAnCBuffer, addr DaAnCLen
ret
BindParamVariable endp
GetParam proc hWnd:DWORD
invoke GetWindowText,hTiGan,addr TiGanBuffer,255
invoke lstrlen,addr TiGanBuffer
mov TiGanLen,eax
invoke GetWindowText,hDaAnA,addr DaAnABuffer,255
invoke lstrlen,addr DaAnABuffer
mov DaAnALen,eax
invoke GetWindowText,hDaAnB,addr DaAnBBuffer,255
invoke lstrlen,addr DaAnBBuffer
mov DaAnBLen,eax
invoke GetWindowText,hDaAnC,addr DaAnCBuffer,255
invoke lstrlen,addr DaAnCBuffer
mov DaAnCLen,eax
ret
GetParam endp
;*******************************************************
My_Init PROTO :HWND
My_Proc PROTO :HWND
QueryProc proto hWin:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD
SwitchMenuState proto :DWORD
ODBCConnect proto :DWORD
ODBCDisconnect proto :DWORD
RunQuery proto :DWORD
My_cmpstr proto lpSrc:DWORD,lpDest:DWORD,nLen:DWORD
My_cmpstri proto lpSrc:DWORD,lpDest:DWORD,nLen:DWORD
WinMain proto hWin:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD
.data?
hMain dd ?
hSQL dd ?
dwPos dd ?
CommandLine LPSTR ?
StrLenX dd ?
NameLength dd ?
PasswdLength dd ?
szPassword db 256 dup (?)
szBuffer_Passwd db 128 dup (?)
szBuffer db 2048 dup (?)
szBuffer1 db 128 dup(?)
szBuffer2 db 128 dup(?)
szDebugBuffer db 128 dup(?)
ID_LOGIN_OK equ 0
.data
SQLStatement db "select passwd from pass ",0
WhereStatement db "where xm=?",0
szSuc_LOGIN db '登陸成功',0
szErr_LOGIN db '登陸出錯啦',0
szErrDriver db 'ODBC 初始化錯誤',0
szErrConn db '無法連接到營業(yè)系統(tǒng)數(shù)據(jù)庫',0
szErrSQL db '查詢數(shù)據(jù)庫錯誤',0
szNull db 0
szMy_Debug db '測試使用對話框',0
NoData db "用戶名不能為空,請重新輸入用戶名",0
AppName db "登錄",0
Disconnect db "成功斷開數(shù)據(jù)源",0
SetAttrFail db "ODBC版本錯誤",0
ConnectCaption db "Complete Connection String",0
AllocEnvFail db "Environment handle allocation failed",0
AllocConnFail db "Connection handle allocation failed",0
ExecuteFail db "Execution of SQL statement failed",0
ConnFail db "Connection attempt failed",0
AllocStmtFail db "Statement handle allocation failed",0
Conn db 256 dup(?)
TheName db 26 dup(?)
ThePasswd db 26 dup(?)
SearchName db 26 dup(?)
ProgPath db 256 dup(?)
ConnectString db 1024 dup(?)
;******************************************************
DlgMainProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
.data
EmptyRec db "空記錄,請追加!",0
InvalidRec db "無效記錄集!",0
TitleName db "ODBC數(shù)據(jù)庫管理系統(tǒng)",0
Male db "男",0
FeMale db "女",0
stuName db "姓名",0
Sex db "性別",0
Age db "年齡",0
ModError db "記錄修改失敗!",0
DelError db "記錄刪除失敗!",0
P_U_D_Error db "Select error for update or delete",0
Save db "保存",0
Cursor db "cust",0
Connect db "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=.\ODBC.mdb",0
SQLAppStmt db "insert into main (TiGan,DaAnA,DaAnB,DaAnC) values (?,?,?,?)",0
SQLModStmt db "update main set TiGan=?,DaAnA=?,DaAnB=?,DaAnC=? WHERE CURRENT OF cust",0
SQLDelStmt db "DELETE FROM main where current of cust",0
Pos_Update_Del db "select * from MAIN",0; FOR UPDATE of Name,Sex,Age",0
char db "%ld",0
ClearContent db 0,0
row dd 0
szChiose db "您選擇的答案是:%s",0
szChioseA db "A",0
szChioseB db "B",0
szChioseC db "C",0
.data?
hFIRST HANDLE ?
hNEXT HANDLE ?
hPRE HANDLE ?
hLAST HANDLE ?
hAPPEND HANDLE ?
hMODIFY HANDLE ?
hDELETE HANDLE ?
hEXIT HANDLE ?
hTiGan HANDLE ?
hDaAnA HANDLE ?
hDaAnB HANDLE ?
hDaAnC HANDLE ?
hZhQuD HANDLE ?
retcode dw ?
CurRecPosInCur dd ? ;1~ROWS
szChioseBuf db 100 dup(?)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -