首页
社区
课程
招聘
用汇编语言向ODBC数据库表中插入记录,请看哪里出了问题?
发表于: 2005-10-24 22:47 5999

用汇编语言向ODBC数据库表中插入记录,请看哪里出了问题?

2005-10-24 22:47
5999
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直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 4833
活跃值: (2218)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
已经解决了,程序没问题,是SQL语法的问题。
INSERT INTO table_name (column1, column2,...)
VALUES (value1, value2,....)
2005-10-25 08:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mjo
3
哦,原来如此啊
2005-11-1 19:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
是这样的哦,明白
2005-11-5 04:31
0
雪    币: 212
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
用C/++来做容易得多,ASM看了头晕
2005-11-7 13:17
0
游客
登录 | 注册 方可回帖
返回
//