全國最多中醫師線上諮詢網站-台灣中醫網
上鎖的討論區 上鎖的討論區 瀏覽次數:708
推到 Plurk!
推到 Facebook!

asp+access权限设置问题.

尚未結案
aKnightChen@Hotmail.com
一般會員


發表:62
回覆:57
積分:23
註冊:2003-06-13

發送簡訊給我
#1 發表時間:2003-09-01 11:16:33 IP:218.20.xxx.xxx 未訂閱
我用ASP ACCESS连接, 连接是成功的,能正确SELECT, 但是想INSERT一条记录, 可是总是提示: --------------------------------------- Microsoft JET Database Engine 错误 '80040e14' INSERT INTO 语句的语法错误。 /SETCLIENTIP.ASP,行22 --------------------------------------- 我将ACCESS的属性-->安全-->里将EVERYONE全设为可读可写权限. 我还将ACCESS所在的目录-->属性-->安全-->里也将EVERYONE设为可读写权限, 可是错误仍然一样。(我发现网上有好多网友也为此问题困惑) ------------ 请大家指点。 ------------------ dim Conn set rsExec=Server.CreateObject("ADODB.RecordSet") set rsOpen=Server.CreateObject("ADODB.RecordSet") Set Conn = Server.CreateObject("ADODB.Connection") Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("\")&"\DB\KNTSOFTCLIENT.mdb;User ID=Admin;Password=;" sStr="SELECT TOP 1 CLT_ID FROM CLT_COST WHERE CLT_ID='" Request.QueryString("CLT_ID") "' AND #" CStr(Year(Now)) "-" CStr(Month(Now)) "-" CStr(Day(Now)) "# BETWEEN START_TIME AND END_TIME " rsOpen.Open sStr,Conn,1,1 if not rsOpen.Eof then rsOpen.Close sStr="SELECT TOP 1 CLT_ID FROM CLT_IP WHERE CLT_ID='" Request.QueryString("CLT_ID") "'" rsOpen.Open sStr,Conn,1,1 if rsOpen.Eof then sStr="INSERT INTO CLT_IP (CLT_ID,IP) VALUE ('" Request.QueryString("CLT_ID") "','" Request.ServerVariables("remote_addr") "')" Response.Write sStr Response.Flush rsExec.Open sStr,Conn,1,1 else sStr="UPDATE CLT_IP SET IP='" Request.ServerVariables("remote_addr") "' WHERE CLT_ID='" Request.QueryString("CLT_ID") "'" Response.Write sStr Response.Flush rsExec.Open sStr,Conn,1,1 end if end if
reebokmonkey
一般會員


發表:44
回覆:73
積分:23
註冊:2003-08-06

發送簡訊給我
#2 發表時間:2003-09-01 11:32:50 IP:61.149.xxx.xxx 未訂閱
sStr="INSERT INTO CLT_IP (CLT_ID,IP) VALUE ('" Request.QueryString("CLT_ID") "','" Request.ServerVariables("remote_addr") "')" 中的CLT_ID,IP是什么类型,CLT_IP是这张表的名字吗?
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#3 發表時間:2003-09-01 11:36:27 IP:61.155.xxx.xxx 未訂閱
rsExec.Open sStr,Conn,1,1 改为: rsExec.Open sStr,Conn,2,3 建议对insert updata 最好用ADODB.command
aKnightChen@Hotmail.com
一般會員


發表:62
回覆:57
積分:23
註冊:2003-06-13

發送簡訊給我
#4 發表時間:2003-09-01 11:44:02 IP:218.20.xxx.xxx 未訂閱
to:reebokmonkey ---------------------- 语法上没有问题,表结构也没问题.(我用MSSQL就可以) 字段长度,索引都没问题, 我用UPDATE也不行. 但我把相同的SQL语句在MSACCESS的SQL语句环境中执行就成功。 问题出在权限设置上。 ---------------------- TO sos_admin ---------------------- rsExec.Open sStr,Conn,2,3也不行。 ----------------------
reebokmonkey
一般會員


發表:44
回覆:73
積分:23
註冊:2003-08-06

發送簡訊給我
#5 發表時間:2003-09-01 11:51:01 IP:61.149.xxx.xxx 未訂閱
如果是字符型就要加引号,如果不是字符型就要去掉引号.这个很容易被忽略的哦!
aKnightChen@Hotmail.com
一般會員


發表:62
回覆:57
積分:23
註冊:2003-06-13

發送簡訊給我
#6 發表時間:2003-09-01 11:58:52 IP:218.20.xxx.xxx 未訂閱
是字符,语法没问题,(我肯定)
reebokmonkey
一般會員


發表:44
回覆:73
積分:23
註冊:2003-08-06

發送簡訊給我
#7 發表時間:2003-09-01 12:18:59 IP:61.149.xxx.xxx 未訂閱
你把所有的 Response.Write sStr Response.Flush 语句注释调再试一试,以前我在调试的时候就碰到过"在SQL语句的执行前不能用Response.Write输出字符在页面上"
aKnightChen@Hotmail.com
一般會員


發表:62
回覆:57
積分:23
註冊:2003-06-13

發送簡訊給我
#8 發表時間:2003-09-01 12:48:05 IP:218.20.xxx.xxx 未訂閱
搞定问题了, 我的写法如下,(不过真不明白为何不能直接用SQL) ------------ if rsOpen.Eof then sStr="SELECT TOP 1 * FROM CLT_IP" rsExec.Open sStr,Conn,2,3 rsExec.AddNew rsExec.Fields("CLT_ID").Value=Request.QueryString("CLT_ID") rsExec.Fields("IP").Value=Request.ServerVariables("remote_addr") rsExec.Update else sStr="SELECT TOP 1 * FROM CLT_IP WHERE CLT_ID='" Request.QueryString("CLT_ID") "'" rsExec.Open sStr,Conn,2,3 rsExec.Fields("IP").Value=Request.ServerVariables("remote_addr") rsExec.Update end if ------------
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#9 發表時間:2003-09-01 13:32:35 IP:61.155.xxx.xxx 未訂閱
dim Conn set rsExec=Server.CreateObject("ADODB.RecordSet") set rsOpen=Server.CreateObject("ADODB.RecordSet") Set Conn = Server.CreateObject("ADODB.Connection") Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("test.mdb")&_ ";User ID=Admin;Password=;" sql="select * from mytable" rsOpen.Open sql,Conn,2,3 if not rsopen.eof then response.Write(rsopen("aa")) end if    rsOpen.close() sql="insert into mytable (aa,bb,cc) values ('aa_ok','bb_ok',123)" rsOpen.Open sql,Conn,2,3 我估计是您的记录集已经打开的时候,还没有close;就向其中insert数据,所以就会出错的;我上面的语句自己测试并没有出错,用法应该和您前面的相同。参考一下哦!
系統時間:2024-10-04 1:17:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!