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

📄 note.txt

📁 驾驶员考试系统,汇编编写,qq332779423
💻 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	'无法连接到营业系统数据库',0
szErrSQL			db	'查询数据库错误',0
szNull				db	0
szMy_Debug			db	'测试使用对话框',0
NoData				db "用户名不能为空,请重新输入用户名",0
AppName				db "登录",0
Disconnect			db "成功断开数据源",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数据库管理系统",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(?)

⌨️ 快捷键说明

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