在DELPHI中代码如下:procedure Tguestbook.LinkDatabase;
var DB_Path:string;
begin
   DB_Path := ExtractFilePath (ParamStr(0))+'database.mdb';
   DB_Path := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=;Data Source='+DB_Path+';Persist Security Info=False';
   conn := CreateOleObject('ADODB.Connection');
   conn.CursorLocation := aduseclient;
   conn.open(DB_Path);
end;procedure Tguestbook.SaveArticle;
var fatherid:integer;
    subject,body:String;
    addposttime:TDatetime;
    sql:String;
begin
    fatherid := request.form.Item ['fatherid'];
    subject := request.Form.Item ['subject'];
    body := request.Form.Item ['body'];
    addposttime:=now;
    sql := 'Insert into [guestbook] (fatherid,subject,body,addposttime) values ('+IntToStr(fatherid)+','''+subject+''','''+body+''','''+DatetimeToStr(addposttime)+''')';
    conn.execute(sql);
end;
ASP中:<% 
   Dim DelphiASPObj
   Set DelphiASPObj = Server.CreateObject("Project2.guestbook") 
   DelphiASPObj.LinkDatabase()
   DelphiASPObj.SaveArticle()
   Set DelphiASPObj = Nothing
%>
执行后,出现错误提示:Project2.guestbook 错误 '80004005' 操作必须使用一个可更新的查询。 /dispbbs.asp,行5 
???

解决方案 »

  1.   

    conn.CursorLocation := aduseclient;去掉这行看看目录是否可写记录集是否中读
      

  2.   

    to blueshrimp(天空还下着沙) 照着你的方法做了,问题依然存在。还有其它什么要注意的吗?
      

  3.   

    我觉得是sql出错了,第一个也要加上单引号+''''+IntToStr(fatherid)+''''+,把sql取出来,看看可不可以执行。