【发布时间】:2012-06-26 22:57:45
【问题描述】:
我正在尝试将记录插入 db2 表并通过 response.write 获得结果。 我的响应是 Insert OK,但记录没有插入到我的表中。这是我使用的代码:
<%
dim connection
dim sSQL, sConnString
sSQL="INSERT INTO db.tablename (LOGON,CREATION_DATE,CREATOR) VALUES ('logonTest','2012- 06-20-12.00.00.000000','blabla')"
sConnString="data source=blabla;user id=jhonsonjack;password=mypassword"
Set connection = Server.CreateObject("ADODB.Connection")
connection.Open(sConnString)
On Error Resume Next
connection.execute(sSQL)
if Err.number<>0 or connection.Errors.Count <> 0 Then
response.write "Insert Failed"
else
response.write "Insert OK"
end if
On Error Goto 0
Connection.Close
Set Connection = Nothing
%>
你知道其中有什么问题吗?
作为更新,我的插入现在几乎可以正常工作了。我说差不多了,因为我尝试在我的表中插入 4 条记录,但是这段代码只处理两个第一个“插入”,我不明白为什么。
<%
dim connection
dim sSQL
dim sConnString
sSQL="INSERT INTO XXXXX.XXXXX(LOGON,CREATION_DATE,CREATOR,ACCOUNT_TYPE,TO_DISABLE,APPLICATION_NAME,ACCOUNT_MODEL,DESCRIPTION,OWNER,FAC_SECURITY,CUPID,REG_FORM,CFIRM_DATE,TO_DELETE,DOCLINK) VALUES ('XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','4','XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','','XXXXX');INSERT INTO XXXXX.XXXXX (LOGON,CREATION_DATE,CREATOR,ACCOUNT_TYPE,TO_DISABLE,APPLICATION_NAME,ACCOUNT_MODEL,DESCRIPTION,OWNER,FAC_SECURITY,CUPID,REG_FORM,CFIRM_DATE,TO_DELETE,DOCLINK) VALUES ('XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','4','XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','','XXXXX');INSERT INTO XXXXX.XXXXX (LOGON,CREATION_DATE,CREATOR,ACCOUNT_TYPE,TO_DISABLE,APPLICATION_NAME,ACCOUNT_MODEL,DESCRIPTION,OWNER,FAC_SECURITY,CUPID,REG_FORM,CFIRM_DATE,TO_DELETE,DOCLINK) VALUES ('XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','4','XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','','XXXXX');INSERT INTO XXXXX.XXXXX (LOGON,CREATION_DATE,CREATOR,ACCOUNT_TYPE,TO_DISABLE,APPLICATION_NAME,ACCOUNT_MODEL,DESCRIPTION,OWNER,FAC_SECURITY,CUPID,REG_FORM,CFIRM_DATE,TO_DELETE,DOCLINK) VALUES ('XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','4','XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','','XXXXX');"
sConnString="data source=XXXXX;user id=XXXXX;password=XXXXXXXXXX"
Set connection = Server.CreateObject("ADODB.Connection")
connection.Open(sConnString)
set rs = connection.execute(sSQL)
if Err.number<>0 or connection.Errors.Count <> 0 Then
response.write "Insert Failed"
else
response.write "Insert OK" %><br><% response.write sSQL
end if
Connection.Close
%>
你知道里面有什么问题吗?
【问题讨论】:
-
这是一个错字,还是您实际插入的格式错误的时间戳字符串(我假设您将其插入时间戳,而不是 char/varchar 字段)。你确定它连接正常吗?您在打开连接字符串后执行
On Error Resume Next,这意味着如果打开失败,您的程序将不会注意到。另外,交易呢?这可能是您只需要COMMIT记录的简单情况吗? -
它实际上是格式错误的。它应该是“2012-06-20-12.00.00.000000”。它应该可以正常连接,因为我使用与应用程序本身相同的设置,并且工作正常。我尝试让这个脚本在我的数据库中一次添加许多记录
-
如果格式不正确,那么您应该会收到错误消息(因为系统会提示“你到底给了我什么?”)。除了只输出“Insert OK”之外,为什么不输出更多调试状态——这可能会让您更深入地了解您的问题。另外(我从来没有搞砸过 asp-classic)
On Error Goto 0指向哪里?
标签: asp-classic db2