为什么不能创建对象?解决给分!

fang525 2003-02-27 06:12:28
工具vb:做了个activeX dll
生成文件:connection.vbp和open.cls

运行无错

make connection.dll 到c:\connection.dll

运行: regsvr32 c:\connection.dll 注册成功

下面是asp文件创建对象语句:

<%@ Language=VBScript %>
<%
Set ObjReference=Server.CreateObject("connection.open") '本行出错
set MyRec=Server.CreateObject("ADODB.Recordset")
Set MyRec=objReference.GetRecSqlOleDb("select * from client")
Response.Write MyRec.fields(0)
'....

用IE5运行该页出错提示:

错误类型:
服务器对象, ASP 0177 (0x800401F3)
无效的 ProgID。 若要获取关于此消息的更多的信息,请访问 Microsoft 联机支持站点: http://www.microsoft.com/contentredirect.asp 。
/sec.asp, 第 3 行
...全文
34 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fang525 2003-03-04
  • 打赏
  • 举报
回复
好,我估计也是名字问题,
我看看先,不过我现在的系统重装了,
没有光盘,过几天在试
等我搞定给大家加分!
tutuaction 2003-02-28
  • 打赏
  • 举报
回复
应该是名字的问题,你最好重新来一次
fling_boy 2003-02-28
  • 打赏
  • 举报
回复
看你的情况,只能是connection.open这个名字出错了,工程文件名和工程名是不一样的概念,两个默认是一样的,可以修改成不一样的,同样类也是这样。
建议你把你生成的dll在引用中加载进来,看看到底库名和类名是什么,然后再使用。
XLYT 2003-02-28
  • 打赏
  • 举报
回复
把你的DLL放到操作系统能找到的文件夹里,比如windows\system,或者winnt\system32。
fang525 2003-02-28
  • 打赏
  • 举报
回复
我把上面的代码放到vb里运行,结果如下
Run-time error '429':
ActiveX component can't create object

我第一次用vb做东西,我的理解是:
文件connection.vbp的文件名connection就是ProjectName.ClassModuleName里的ProjectName
open.cls的文件名open就是ClassModuleName
如果我的理解不错的话
请问是不是注册之后还有什么工作没有做?
fling_boy 2003-02-27
  • 打赏
  • 举报
回复
先在VB中引用你编译的dll,看看库名和类名是什么,如果和你写的正确,
再把上面的代码改一下放到VB中运行:
dim ObjReference as object ,MyRec as object

Set ObjReference=CreateObject("connection.open")
set MyRec=CreateObject("ADODB.Recordset")
Set MyRec=objReference.GetRecSqlOleDb("select * from client")

如果运行出错,改了再试。
如果运行没问题,那问题就复杂了,可能是你当前IIS默认的用户权限的问题,不过这种可能性比较小,你试着调高一些.
kmcyz 2003-02-27
  • 打赏
  • 举报
回复
你生成的类库名称不是connection.open吧。
Cooly 2003-02-27
  • 打赏
  • 举报
回复
可能是"connection.open"不正确
默认在VB工程中
ProjectName.ClassModuleName

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧