用Delphi5编写了一个基于OLE自动化的DLL。在里面有
1、从注册表取参数
2、从ini文件取参数
3、用TFileStream对象建立文件流存取局域网上其他机器的lib二进制文件。
当用Delphi写的客户端用IDispatch接口调用时工作正常,但在SQL Server2000的Trigger中,用sp_OACreate和sp_OAMethod调用时,前两个过程都返回空值,第三个过程则不能建立文件流。代码如下,请高手指点:function TPmsNetFile.GetInIPath: String;
var Reg:TRegistry;
begin
   Reg:=TRegistry.Create;
   try
   Reg.RootKey:=HKEY_CURRENT_USER;
   if (Reg.OpenKey('\Software\Hisino\Info',False))=True then
        begin
          Result:=Reg.ReadString('Path'); //get the path
        end;
    finally
      Reg.CloseKey;
      Reg.Free;
    end;
end;constructor TPmsNetFile.Create;
var  BillName:String;
     Hisinoinifile:TInifile;
begin
   BillName:=ExtractFilePath(paramstr(0))+IniFileName;
   ID:=BillName;
   try
   Hisinoinifile:=TInifile.Create(BillName);
   NFDir:=Hisinoinifile.readString('PmsInfo','NFDir','');
   finally
   Hisinoinifile.Destroy;
   end;
end;function TPmsNetFile.setCheckInOut(dn: Integer; Check: Byte;
  Guest:String): Boolean;
var fstream:TFilestream;
    AllFileName:String;
begin
  AllFileName:=NFDir+CheckInOutFileName;
  if  SeekBillFile(AllFileName,NFDir) then
     begin
       Try
       fstream:=Tfilestream.create(AllFileName,fmOpenReadWrite);
       //do something 
       Finally
         fstream.Free;
       end;
     end
  else result:=False;
end;