MASM32汇编语言官方教程里有篇ODBC的教程,里面有个例子ODBCtest,我修改了里面的部分代码,就是手动查询菜单里的代码,想让程序接收到IDM_CUSTOMQUERY后,就向数据库里插入一条记录,但我总调试不成功,谁有写过这样程序的可以帮看一下哪里的语句出了问题?导致调试不成功的。
下面的连接地址是官方教程的原版的打包地址,附件中是我修改的程序代码,就是修改了下面的部分。
http://spiff.tripnet.se/~iczelion/files/odbc5.zip
sqlstring db "insert main (Name) values (?)",0
sample1 db "bob",0
sample2 db "mary",0
success db "congratulation",0
.data?
buffer db 256 dup (?)
strlen dd ?
.code
......
.elseif ax==IDM_CUSTOMQUERY
invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
invoke SQLPrepare,hStmt,addr sqlstring,sizeof sqlstring
invoke SQLBindParameter,hStmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,25,0,addr buffer,sizeof buffer,addr strlen
invoke lstrcpy,addr buffer,addr sample1
mov strlen,sizeof sample1
invoke SQLExecute,hStmt ;here It cannot work correctlly,why?
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
invoke MessageBox,hDlg,addr success,addr success,MB_OK
.else
invoke MessageBox,hDlg,addr ExecuteFail, addr AppName, MB_OK+MB_ICONERROR
.endif
invoke SQLCloseCursor, hStmt
invoke SQLFreeHandle, SQL_HANDLE_STMT, hStmt
.else
.endif
..........................
.endif
附件:odbctest.rar
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课