unit Unit1;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
  ComObj, ActiveX, AspTlb, zm_TLB, StdVcl,SysUtils;type
  TData_Link = class(TASPObject, IData_Link)
  protected
    procedure OnEndPage; safecall;
    procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
    function ConnectData: OleVariant; safecall;
    procedure GetString; safecall;
  end;implementationuses ComServ;var Link_String : String;procedure TData_Link.OnEndPage;
begin
  inherited OnEndPage;
end;procedure TData_Link.OnStartPage(const AScriptingContext: IUnknown);
begin
  inherited OnStartPage(AScriptingContext);
end;
procedure TData_link.GetString ;
Var IniFileName: String;
    F1:TextFile;
begin
   IniFileName := 'C:\WINNT\SYSTEM32\ZM_DATA.INI';
   If  Not(FileExists(IniFileName)) Then
     Begin
       Response.Write('发现故障性错误,请稍后操作');
       Response.End_ ;
     End;
   AssignFile(F1,IniFileName);
   Reset(F1);
   Link_String := '';
   Readln(F1,Link_String);
   CloseFile(F1);
end;function TData_Link.ConnectData: OleVariant;
var Conn : OleVariant;
    rs:OleVariant;
    sql:String;
begin
   GetString;
   Conn := CreateOleObject('ADODB.Connection');
   rs := CreateOleObject('ADODB.Recordset');
   Conn.open(Link_String);
   sql := 'Select * From hotelmain';
   result := rs.open (sql,conn,1,1,1);
end;initialization
  TAutoObjectFactory.Create(ComServer, TData_Link, Class_Data_Link,
    ciMultiInstance, tmApartment);
end.asp中:<% 
   Dim rs
   Dim DelphiASPObj
   Set DelphiASPObj = Server.CreateObject("zm.Data_link") 
   Set rs = DelphiASPObj.ConnectData
   Do while not rs.eof
   response.write rs("id")&"<br>"
   rs.movenext
   Loop
%>
错误 :
Microsoft VBScript 运行时错误 错误 '800a01a8' 缺少对象: 'ConnectData' /Data_link.asp,行5 

解决方案 »

  1.   

    你的ConnectData测试过能用吗?我怎么觉得得加一句   Conn := CreateOleObject('ADODB.Connection');
       rs := CreateOleObject('ADODB.Recordset');
       rs.Connection := Conn;//加这句
       Conn.open(Link_String);
       sql := 'Select * From hotelmain';
      

  2.   

    如果是缺少对象,那么你的ConnectData是自己添写的,还是用TypeLibrary自动添加的?如果是自己添写的,出这样的问题,那是太正常了。
    一定要用TypeLibrary Editor自动添加这个函数。
      

  3.   

    如果自已添加,呵,那是神仙呀。我个人认为,即然你是用delphi开发了,那为什么不用ado呢???把一些东东全都写到delphi中。