这两天我在研究用ActiveX DLL封装ASP,看了网上的有关这方面的一些文章,基本上有所了解,但是,现在遇到一个问题,就是,不知道如何读取数据库的内容,
比如说,咱们在asp文件中,直接用rs.open"select * from table"可以查询table的数据,但是在ActiveX DLL中好象不行!

解决方案 »

  1.   

    没有提示具体错误,对了,是不是得引用ADO??
    还要在代码中新建adodb.connection和ADODB.RecordSet呀?(我说的不是asp文件中,是在Active DLL中!)
      

  2.   

    做SQL--COM--IIS--IE三层结构
    1,先做ACTIVEX DLL:改工程名与模块名,生成DLL文件。
    2,再做ASP:
    3,把DLL复制到将要作为COM层的机器上:
       1)注册:“运行”--“REGSVR32路径+文件名”
       2)“MMC”--
           “导出”--“选应用程序-代理”--
    4,把“导出的COM”与ASP一起放到将要做为IIS层的机器上:
       1)先执行“导出的COM”
       2)“设置”--“控制面板”--“管理工具”--“INTERNET服务管理”--“WEB默认站点”--“新建”--“虚拟目录”--“名字”--“选择ASP所在的文件夹”
    5,在所有机器上便可运行网站:HTTP://机器标识号/站名/ASP文件名
      例如:HTTP://ACCP06/2J/GETORDER.ASP不知道是不是你想要的?
      

  3.   

    比如说,咱们在asp文件中,直接用rs.open"select * from table"可以查询table的数据,但是在ActiveX DLL中好象不行!asp  是在服务器端读数据
    ActiveX DLL 是本机
      

  4.   

    //在asp文件中,直接用rs.open"select * from table"可以查询table的数据
    不对吧,在asp文件中必须Server.CreateObject("ADODB.Recordset")才可以的,没有创建对象,怎么能直接使用?在VB中得引用ADO库,并且建立对象,才能使用,和普通组件一样的
      

  5.   

    没问题,我用过很多次。
    在DLL中建立连接,检索数据然后直接使用Response对象写出数据
    Dim 你的DLL
    Dim object
    Dim strTmp
    object=Server.CreateObject("你的DLL名")
    object.conn="你的连接"
    strTmp=你的DLL.输出的方法(参数,Response)Function 输出的方法(Byval Text as String,Byref Res as Object)
    在DLL中用Res.Write "String"输出