主题:  数据插入错误

stchin

职务:普通成员
等级:1
金币:0.0
发贴:81
注册:2001/2/15 13:42:31
#12001/2/19 20:24:17
我曾用ud1成功完成一个论坛,但昨天用4.0时却出错,大概是excute()那一句,ud中的插入操作就是一个表单,把相应字段和表单中的文本框对应起来,似乎很简单,也没有什么出错的地方,但总是出错.要插入数据的表也很简单,三个字段,第一个为id,自动生成,第二个为插入的数据,文本类型第三个为日期,默认值now().怎么会事?我能顺利读出数据,而且数据库没有设成只读属性.

插入操作出错,而以前没出现过什么问题。从ud的操作中几乎没有什么出错的余地。太叫人费解了。其中的第78行内容如下:MM_editCmd.Execute();而我这个页面也极其简单,表单中一个文本框,一个提交按钮。要插入的表中也表中只有一个字段。
下面是浏览器的错误信息和那个文件的源码。
技术信息(适用于支持人员)

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
/firstsite/Default.asp, 第 78 行


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

页:
POST 46 bytes to /firstsite/Default.asp

POST 数据:
tempusername=ssss&Submit=Submit&MM_insert=true


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

<%@LANGUAGE="javascript"%>

<%
// *** Edit Operations: declare variables

// set the form action variable
var MM_editAction = Request.ServerVariables("URL");
if (Request.QueryString) {
MM_editAction += "?" + Request.QueryString;
}

// boolean to abort record edit
var MM_abortEdit = false;

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

if (String(Request("MM_insert")) != "undefined") {

var MM_editConnection = MM_third_STRING;
var MM_editTable = "temp";
var MM_editRedirectUrl = "login/usernameerror.html";
var MM_fieldsStr = "tempusername|value";
var MM_columnsStr = "tempusername|',none,''";

// create the MM_fields and MM_columns arrays
var MM_fields = MM_fieldsStr.split("|");
var MM_columns = MM_columnsStr.split("|");

// set the form values
for (var i=0; i+1 < MM_fields.length; i+=2) {
MM_fields[i+1] = String(Request.Form(MM_fields[i]));
}

// append the query string to the redirect URL
if (MM_editRedirectUrl && Request.QueryString && Request.QueryString.length > 0) {
MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') == -1)?"?":"&") + Request.QueryString;
}
}
%>
<%
// *** Insert Record: construct a sql insert statement and execute it

if (String(Request("MM_insert")) != "undefined") {

// create the sql insert statement
var MM_tablevalues = "", MM_dbvalues = "";
for (var i=0; i+1 < MM_fields.length; i+=2) {
var formVal = MM_fields[i+1];
var MM_typesArray = MM_columns[i+1].split(",");
var delim = (MM_typesArray[0] != "none") ? MM_typesArray[0] : "";
var altVal = (MM_typesArray[1] != "none") ? MM_typesArray[1] : "";
var emptyVal = (MM_typesArray[2] != "none") ? MM_typesArray[2] : "";
if (formVal == "" || formVal == "undefined") {
formVal = emptyVal;
} else {
if (altVal != "") {
formVal = altVal;
} else if (delim == "'") { // escape quotes
formVal = "'" + formVal.replace(/'/g,"''") + "'";
} else {
formVal = delim + formVal + delim;
}
}
MM_tablevalues += ((i != 0) ? "," : "") + MM_columns[i];
MM_dbvalues += ((i != 0) ? "," : "") + formVal;
}
MM_editQuery = "insert into " + MM_editTable + " (" + MM_tablevalues + ") values (" + MM_dbvalues + ")";---------------------------->ud自动生成的sql插入语句。

if (!MM_abortEdit) {
// execute the insert
var 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) {
Response.Redirect(MM_editRedirectUrl);
}
}

}
%>


Untitled Document










编辑历史:[这消息被stchin编辑过(编辑时间2001-02-20 09:56:47)]
[这消息被stchin编辑过(编辑时间2001-02-20 09:59:19)]


wowomo

职务:普通成员
等级:1
金币:1.0
发贴:309
注册:2001/1/12 21:01:58
#22001/2/22 23:45:49
我没有看得出什么毛病,ud产生的代码很是难懂。

我怀疑是你在执行的时候打开了你的数据库,所以不可以更新。