主题:  请教各位高手,为什么我在提交表单时出现错误

winter52

职务:普通成员
等级:1
金币:0.0
发贴:1
#12005/10/10 9:44:32
大家好:
我是新手,用按5D上讲的用DW生成代码做了一个留言本,做完后,别的一切都运行正常,只有在填写完留言内容后,提交时出现如下错误:
本页无法显示
试图访问的网页出现问题,无法显示。

--------------------------------------------------------------------------------

请尝试以下方法:

单击 刷新按钮或者梢候再试。

打开 localhost 主页,然后查找与所需信息相关的链接。
HTTP 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

--------------------------------------------------------------------------------

技术信息(适用于支持人员)

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
/ljx/manage/TMP1vpivo4e9n.asp, 第 115 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

页:
POST 117 bytes to /ljx/manage/TMP1vpivo4e9n.asp

POST 数据:
f_title=yty&f_name=kjk&f_sex=1&f_tele=546&f_QQ=6546&f_email=&f_homepage=http%3A%2F%2F&f_centent=kjkjl&MM_insert=form1

时间:
2005年10月10日, 9:19:23


详细信息:
Microsoft 支持

上面所提到的第115行,就是如下内容: MM_editCmd.Execute
请教各位,这究竟是怎么回事??5D链接所讲的,好象是数据库权限问题,但我不知数据库权限怎样修改,据我所知的(我用的是ACCESS2000),权限应该是没问题的,也许是我所说的权限和那上面提到的不一样,还请各位多多帮助,在下深表感谢!!切盼!!

编辑历史:[此帖最近一次被 winter52 编辑过(编辑时间:2005-10-10 17:02:12)]


yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
#22006/1/3 11:11:26
你可以把文件的完整代码弄上来吗?



liyi7327

职务:普通成员
等级:1
金币:0.0
发贴:7
#32006/1/8 11:18:35
我也遇到类似的问题,提交表单时,ie显示


无法显示网页
试图访问的网页出现问题,无法显示。

--------------------------------------------------------------------------------

请尝试执行下列操作:

单击刷新按钮,或稍后重试。

打开 localhost 主页,然后查找与所需信息相关的链接。
HTTP 错误 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

--------------------------------------------------------------------------------

技术信息(用于支持人员)

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。
/langmusi3/web_c/guestbook/help.asp, 第 115 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

网页:
POST 85 ??? /langmusi3/web_c/guestbook/help.asp

POST Data:
username=liyi&email=liyi7327@yahoo.com.cn&Question=111111111111111111&MM_insert=form1

时间:
2006年1月8日, 11:02:44


详细信息:
Microsoft 支持



liyi7327

职务:普通成员
等级:1
金币:0.0
发贴:7
#42006/1/8 11:21:02
完整的网页代码为
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../../Connections/record.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) = "form1") Then

MM_editConnection = MM_record_STRING
MM_editTable = "chinese"
MM_editRedirectUrl = "../../index_c.htm"
MM_fieldsStr = "username|value|email|value|Question|value"
MM_columnsStr = "username|',none,''|email|',none,''|Question|',none,''"

' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it

Dim MM_tablevalues
Dim MM_dbvalues

If (CStr(Request("MM_insert")) <> "") Then

' create the sql insert statement
MM_tablevalues = ""
MM_dbvalues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tablevalues = MM_tablevalues & ","
MM_dbvalues = MM_dbvalues & ","
End If
MM_tablevalues = MM_tablevalues & MM_columns(MM_i)
MM_dbvalues = MM_dbvalues & MM_formVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tablevalues & ") values (" & MM_dbvalues & ")"

If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
%>
<%
Dim conn
Dim conn_numRows

Set conn = Server.CreateObject("ADODB.Recordset")
conn.ActiveConnection = MM_record_STRING
conn.Source = "SELECT username, email, Question FROM chinese"
conn.CursorType = 0
conn.CursorLocation = 2
conn.LockType = 1
conn.Open()

conn_numRows = 0
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<form method="POST" action="<%=MM_editAction%>" name="form1">
<table align="center">
<tr valign="baseline">
<td nowrap align="right">Username:</td>
<td><input type="text" name="username" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Email:</td>
<td><input type="text" name="email" value="" size="32">
</td>
</tr>
<tr>
<td nowrap align="right" valign="top">Question:</td>
<td valign="baseline"><textarea name="Question" cols="50" rows="5"></textarea>
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right">&nbsp;</td>
<td><input type="submit" value="插入记录">
</td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1">
</form>
<p>&nbsp;</p>
</body>
</html>
<%
conn.Close()
Set conn = Nothing
%>



liyi7327

职务:普通成员
等级:1
金币:0.0
发贴:7
#52006/1/8 11:25:30
系统XP SP2, 工作DW MX,连接数据库时,使用数据源名称DSN,选择使用本地DSN

直接使用应用程序中的插入记录表单向导,
插入后表单自动生成动作:<%=MM_editAction%>



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
#62006/1/8 21:39:40
可能是如下问题:
1、数据库源文件为只读或其所在文件夹为只读属性。
2、数据库表得字段不支持空字符。
你检查后看看,如果有问题再说。



未来的大师

职务:普通成员
等级:2
金币:1.0
发贴:550
#72006/1/10 22:58:44
代码不看了,只要你严格照着例子做的应该是没问题。
另外,这种监视,你最好不要在DW中按F12来预蓝
0x80004005一般都是访问权限错误。你把数据库文件所在的文件夹访问权限放开,再试一下。有问题再讨论那。

编辑历史:[此帖最近一次被 月落西山前 编辑过(编辑时间:2006-01-10 23:04:06)]


天使ηò哭

职务:普通成员
等级:1
金币:0.0
发贴:82
#82006/1/12 15:36:12
NT系统的文件安全限制问题 ,
你需要把数据文件属性的安全用户 USER组的设为可以修改写入的权限.

.......... 这种问题很常见 ,数据库文件一旦拷别的地方再拷回来还是得重新设置USER组的权限.