主题:  为什么会出现INSERT INTO 语句的语法错误??

维他命

职务:普通成员
等级:1
金币:0.0
发贴:59
注册:2002/3/8 21:13:09
#12003/6/13 10:21:48
我有一段时间没用MX了,今天做数据插入的时候,为什么在插入多条记录时(一二条记录没问题)总是出现"Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC Microsoft Access 驱动程序] INSERT INTO 语句的语法错误。

/cs/add.asp, 行78 "这种错误,但我查看语句没有错呀,第78行的代码是MM_editCmd.Execute();
是什么原因导致了这种错误,原来我做了一个留言本,给同事用以后开始没问题,但他们网管调整服务器后也出现了这种问题,当时我不相信,因为那个留言本在我的机器上就不会出现这种问题,没想到现在我也碰上了,请各位解答,这到底是怎么一回事呀!!感谢!!



{ 在指尖上绽放的花朵 }

职务:普通成员
等级:5
金币:14.0
发贴:3209
注册:2002/7/25 21:24:11
#22003/6/13 12:02:45
看看SQL语句?



维他命

职务:普通成员
等级:1
金币:0.0
发贴:59
注册:2002/3/8 21:13:09
#32003/6/13 15:53:59
填加数据页代码如下,请大家给看看,没错呀!!
--------------------------------------------------------------------------------------------
<%@LANGUAGE="javascript" CODEPAGE="936"%>

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

// set the form action variable
var MM_editAction = Request.ServerVariables("SCRIPT_NAME");
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")) == "form1") {

var MM_editConnection = MM_cs11_STRING;
var MM_editTable = "list";
var MM_editRedirectUrl = "index.asp";
var MM_fieldsStr = "textfield|value|textfield2|value|textfield3|value|textfield4|value|textfield5|value|textfield6|value|textfield7|value|textfield8|value";
var MM_columnsStr = "name|',none,''|time|',none,''|renyuan|',none,''|map|',none,''|ct|',none,''|t|',none,''|beizhu|',none,''|demo|',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.Count > 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 + ")";

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

}
%>
<%
var Recordset1 = Server.CreateObject("ADODB.Recordset");
Recordset1.ActiveConnection = MM_cs11_STRING;
Recordset1.Source = "SELECT id, name, time, renyuan, map, ct, t, beizhu, demo FROM list";
Recordset1.CursorType = 0;
Recordset1.CursorLocation = 2;
Recordset1.LockType = 1;
Recordset1.Open();
var Recordset1_numRows = 0;
%>



Untitled Document







































比赛名称
比赛时间
参赛选手
比赛地图
做CT比分
做T比分
比赛评论
DEMO下载







 




<%
Recordset1.Close();
%>
---------------------------------------------------------------------------------------------



维他命

职务:普通成员
等级:1
金币:0.0
发贴:59
注册:2002/3/8 21:13:09
#42003/6/14 1:40:59
等了这么久,还是自己在数字面包的论坛找到了问题的所在,没想到因为这个小小的疏忽担误了几天的时间,希望大家不要和我一样走弯路!!原因是数据表中使用了ACCESS数据库里的保留关键字,如name,add,time等,唉!!下面的贴子是数字面包里的解答!!
mxcn.vicp.net/forum/mb_forum/detail2.asp?f2_id=37&f3_id=11006&f3_name=没人性



{ 在指尖上绽放的花朵 }

职务:普通成员
等级:5
金币:14.0
发贴:3209
注册:2002/7/25 21:24:11
#52003/6/14 22:57:54
一般情况我在写程序的时候,都会用这样的变量名~

varName,varSex,varAge等等……

好记,又不会出现莫名其妙的错误~



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#62003/6/15 17:48:20
养成一个良好的编程习惯~~



Palomino

职务:普通成员
等级:3
金币:2.0
发贴:1001
注册:2002/10/4 5:31:54
#72003/6/15 19:00:26
allinhands在上个帖子中说
引用:
养成一个良好的编程习惯~~ :)

强烈赞成前辈的说法,用DW开发ASP的时候有许多的冗余代码,而且缺少必要的注释和规范的命名方式和书写习惯,导致在调试和修改代码的时候工作效率大大降低。