当前位置: 首页 > 图文教程 > 网络编程 > ASP > 为什么ASP中执行动态SQL总报错误信息?提示语句语法错误

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

为什么ASP中执行动态SQL总报错误信息?提示语句语法错误


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 54 ::
收藏到网摘: n/a

问:为什么ASP中执行动态SQL总报错误信息?提示语句语法错误
答:
有时候写ASP用conn.execute(sql)查询、更新、插入Access数据库数据时,明明正确的语句却往往会显示sql语句错误,相当恼火,特进行了归纳,可适当为字段添加“[”、“]”解决:
复制代码 代码如下:

例1:select * from a
如出现错误,可改为:select * from [a]
例2:UPDATE [user] SET password = '"&data1&"' where secname='"&data2&"'"
如出现错误,可改为:UPDATE [user] SET [password] = '"&data1&"' where secname='"&data2&"'"
例3:INSERT INTO mybook ( name, by, mobile ) VALUES ('"&data1&"','"&data2&"','"&data3&"')"
如出现错误,可改为:
INSERT INTO mybook ( [name], [by], [mobile] ) VALUES ('"&data1&"','"&data2&"','"&data3&"')"

问:为什么运行时总是提示“Microsoft JET database Engine (0X80040E09)”不能更新,数据库或对象为只读?
复制代码 代码如下:

答:
在windows+iis服务器上运行asp程序可能会出现数据库无法更新的情况,具体错误信息可能为:
1、Microsoft JET Database Engine (0x80040E09) 不能更新。数据库或对象为只读
2、Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。
3、Microsoft JET Database Engine (0x80004005) 操作必须使用一个可更新的查询。
解决办法有以下几种(针对不同的服务器可能解决办法不一样,在这里假设网站主目录为wwwroot):
A、在wwwroot文件夹上面点击右键-“属性”-取消“只读”
此方法最简单、偶尔有效
B、在您的数据库文件上文件夹上面点击右键-“属性”-“安全”-添加用户:“IUSR_计算机名” 并开放“IUSR_计算机名”的读取、写入权限
此方法是目前解决这个问题最好的办法,一般都可以解决问题
XP系统下可能点击右键看不到“安全”选项,请先打开“工具”-“文件夹选项”-“查看”-取消“使用简单文件共享(推荐)” 然后即可在属性中找到“安全”选项
C、在wwwroot文件夹上面点击右键-“属性”-“web共享”-“共享文件夹”
D、这是目前解决这个问题的几种办法,如果网友还有什么补充请联http://www.venshop.com凡人网络