主题:  高手....帮我看看这是什么问题!

yiwen2004

职务:普通成员
等级:1
金币:0.0
发贴:13
#12004/7/6 12:36:45
问题代码如下:
<%
// *** 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 + ")";

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);
}
}

}
%>
------------------------------------------------------------------------------
但是执行网页时出现如下错误:

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
/1.asp, 第 78 行


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

网页:
POST 70 ??? /1.asp

POST Data:
name=fffffffffffffff&number=ffffff&Submit=%CC%E1%BD%BB&MM_insert=form1

时间:
2004年7月6日, 12:35:06

------------------------------------------------------------------------------
请问这是什么原因啊?



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#22004/7/6 12:40:33
if (!MM_abortEdit) {
// 输出sql
Response.write(MM_editQuery)
Response.end()
//
var MM_editCmd = Server.CreateObject('ADODB.Command');
MM_editCmd.ActiveConnection = MM_editConnection;
MM_editCmd.CommandText = MM_editQuery;
MM_editCmd.Execute();
MM_editCmd.ActiveConnection.Close();


看看输出的sql语句是不是有问题



yiwen2004

职务:普通成员
等级:1
金币:0.0
发贴:13
#32004/7/6 17:42:44
真不知道是什么原因啊!!!
我看了其它的网页的代码(能够输入数据,并且没有出错!),和我在上面的第一段代码一样,但是没有出错。所以我很纳闷,真不知错在哪里!!!



yiwen2004

职务:普通成员
等级:1
金币:0.0
发贴:13
#42004/7/6 17:51:01
allinhands”,您给的修改之后的代码,输入之后显示出了
--------------------------------
insert into A (number) values ('ddddddddd ')
--------------------------
当然"A"是我的数据表,"number"是字段名,"dddddddddd"就是里面的内容。
所以,我觉得问题是有,但问题出在哪儿,我真的挺迷惑。



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#52004/7/6 20:19:56


A就是表名,number就是字段名么?



yiwen2004

职务:普通成员
等级:1
金币:0.0
发贴:13
#62004/7/7 0:41:46
数据表的名是A,表中,有一个字段名取名number啊,然后,以显示出的结果看,ddddddd,几个字母就是说已经能够数入到number 这个字段名中去了啊。
但是在网页显示时,删掉
Response.write(MM_editQuery)
Response.end()
则还是会出现问题所示的同一错误。



yiwen2004

职务:普通成员
等级:1
金币:0.0
发贴:13
#72004/7/7 0:43:12
不过,我将number改为num之后问题就解决了。
奇怪之极,让我自己也一头雾水,不过还是得谢谢您的帮助。