我原先用MDB的資料庫,用ASP寫的一個系統。
由於沒有經驗,使用了where欄位。
最近由於需要把資料庫導成SQL的,導成功之後。我在調試時發現很多的使用了"rs.update"的代碼會提示在where附近有語法錯誤。鬱悶的我查了很多資料,同時也自己試了大半天。直到下午我才最終肯定,是where欄位出了問題。
調試的結論是用update語句可以,但就是不能用rs.update來實現更新;更名正常,但工作量太大;刪去正常,但不能刪。在7917375群內和氣氣等人討論好長時間也拿不出什麼好的其它的方法來。所以發到這裡,希望有人能夠幫忙解決。
這一次是用不了,我只好麻煩地替換可以替換的,一次次地調試了。。
在此向各位同仁提醒,在表單設計時最好不要用資料庫保留欄位。
在SQL中表現為自動更改為[段名],在MDB請恕我愚鈍看不出來。。
==================附調試資訊
sql:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[test]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[test]
GO
CREATE TABLE [dbo].[test] (
[id] [bigint] IDENTITY (1, 1) NOT NULL ,
[where] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[names] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
第一次導這樣的指令碼,希望能用。
ASP:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
connstr="driver={SQL Server};server=localhost;uid=sa;pwd=;database=test"
set conn=Server.CreateObject("ADODB.Connection")
conn.Open connstr
sql="select * from test where id=1"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,3
rs("names")="test"
rs.update
rs.close
set rs=nothing
set conn=nothing
%>