| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2163 人关注过本帖
标题:请教一下关于“Microsoft OLE DB Provider for ODBC Drivers '80040e14'”的 ...
只看楼主 加入收藏
far286
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-9-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
请教一下关于“Microsoft OLE DB Provider for ODBC Drivers '80040e14'”的问题
各位前辈:你们好!
             我是刚学ASP不久的新人,在学到关于数据库的时候遇到了问题,请求大家帮一帮忙,因为我的系统用的是WIN7普通家庭版,所以在设置运行环境的时候我选用了NETBOX软件,数据库我选用的是ACCESS.在调试关于数据库问题的时候出现了些问题,现在想请求各位前辈帮忙寻求解决的办法,谢谢!
下面是程序代码:
     
          Dim strsql,sqla,sqlb,rs
          sqla="insert into users(name,password"
                  sqlb="values('"& session("name")&"','"& session("password") &"'"
          If session("tel")<>""Then
          sqla=sqla & ",tel"
          sqlb=sqlb &",'"& session("tel")&"'"
          End If
          If session("email")<>"" Then
          sqla=sqla &",email"
          sqlb=sqlb&",'"& session("email")&"'"
          End If
          If session("sex")<>"" then
          sqla=sala &",sex"
          sqlb=sqlb &",'"& session("sex")&"'"
          End if
          If session("add_number")<>""Then
          sqla=sqla & ",add_number"
          sqlb=sqlb &",'"& session("add_number")&"'"
          End If

          strsql=sqla &")"& sqlb &")"
        db.execute(strsql)
                    ......
                    ......
                    ......

----------------------------------------------------------------------------------------------------------
连接数据库的文件代码为:
           <%
             Dim db
             Set db=server.CreateObject("adodb.connection")
         db.open "provider=microsoft.jet.oledb.4.0;data source="& server.mappath("userinfo.mdb")&""
     %>
---------------------------------------------------------------------------------------------------------------
    在调试程序的时候就在页面上出现:
                            Microsoft JET Database Engine '80040e14'

                          无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。

                        错误指向:db.execute(strsql)这一句
请问各位前辈到底是什么原因?要怎样才能解决,谢谢!
搜索更多相关主题的帖子: password 运行环境 Microsoft 
2012-09-18 11:57
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:7 

在 db.execute(strsql) 前面加上下面的两句进行调试:
response.write strsql
response.end

做自己喜欢的事!
2012-09-18 18:34
far286
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-9-18
收藏
得分:0 
谢谢板主给我的宝贵信息,然后我想再问一下,在 db.execute(strsql) 前面加上(response.write strsql  response.end)这两句的作用是什么???我按你的提示进行了调试,令我兴奋的是错误的提示没有了,但却在页面上就执行了response.write strsql这句,将整个要添加记录的SQL语句输出来了,其实我最想知道的就是要怎样做才能把我所要增加的数据添加到数据库中,而不时直接输出SQL语句,难道我在连接数据库的时候做错了什么?请板主示下,多给我点提示吧,到底要怎样才能成攻连接到数据库从而做到轻松存取数据,请板主多多帮忙,谢谢!
2012-09-18 22:15
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:7 
显示下:strsql=sqla &")"& sqlb &")"结果,估计没得到正确的SQL语句

★★★★★为人民服务★★★★★
2012-09-19 06:35
far286
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-9-18
收藏
得分:0 
不好意思,我在输入 :      If session("sex")<>"" then
                              sqla=sala &",sex"
                         sqlb=sqlb &",'"& session("sex")&"'"
的过程中把sqla=sala &",sex"中的"="号右边的sala打错了应该为sqla.这样就能正确的输出完整的SQL语句了
2012-09-19 09:01
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:7 
Dim strsql,sqla,sqlb,rs
sqla="insert into users(name,password"
sqlb="values('"& session("name")&"','"& session("password") &"'"
If session("tel")<>""Then
   sqla=sqla & ",tel"
   sqlb=sqlb &",'"& session("tel")&"'"
End If
If session("email")<>"" Then
   sqla=sqla &",email"
   sqlb=sqlb&",'"& session("email")&"'"
End If
If session("sex")<>"" then
   sqla=sala &",sex"
   sqlb=sqlb &",'"& session("sex")&"'"
End if
If session("add_number")<>""Then
   sqla=sqla & ",add_number"
   sqlb=sqlb &",'"& session("add_number")&"'"
End If
strsql=sqla &")"& sqlb &")"
db.execute(strsql)
你这一大堆if判断可能导致sql语句拼写出问题
或者彻底避免这种问题可以使用ADODB.ReocrdSet
Dim strsql,sqla,sqlb,rs
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.Open "select * from [users]",conn,1,3
rs.AddNew
rs("name")=session("name")
rs("password")=session("password")
If session("tel")<>""Then
   rs("tel")=session("tel")
End If
If session("email")<>"" Then
   rs("email")=session("tel")
End If
If session("sex")<>"" then
   rs("sex")=session("sex")
End if
If session("add_number")<>""Then
   rs("add_number")=session("add_number")
End If
rs.Update
rs.Close
Set rs=Nothing
这样就避免SQL拼写错误了
2012-09-19 10:41
far286
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-9-18
收藏
得分:0 
谢谢你们的帮助,问题终于解决了,真的万分感谢!超感动的!
2012-09-19 15:15
快速回复:请教一下关于“Microsoft OLE DB Provider for ODBC Drivers '80040e1 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028644 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved