X
xiaolinj79
Unregistered / Unconfirmed
GUEST, unregistred user!
COM的dll,构造模式如下Active Library+Active Server Object
接口方法如下:
function TMYADOFuc.MYSQL(const sSQL: WideString): OleVariant;
var
MyADOConnection:VARIANT;
MyRecordSet:VARIANT;
begin
MyADOConnection:=CreateOleObject ('ADODB.Connection');
MyADOConnection.Open('Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SDMS;Data Source=BH');
MyRecordSet:=CreateOleObject ('ADODB.RecordSet');
MyRecordSet.Open(sSQL,MyADOConnection);
result:=MyRecordset;
end;
在delphi中使用Import Library 将注册过的dll加如一个测试程序可以使用该函数
但是,如果在asp中使用,语句如下
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
</head>
<% session.timeout=1 %>
<body bgcolor="#FFFFFF" text="#000000">
<% 'on error resume next
set comcn=server.createobject("MYADODLL.MYADOFuc")
y= "select * from Tbl_UseHead"
x= comcn.MYSQL
%>
<% =x %>
</body>
</html>
那么就会有如下错误提示
错误类型:
MYADODLL.MYADOFuc (0x80040E4D)
/bh/dilphitest.asp, 第 12 行
就是 x= comcn.MYSQL 这一行
理论上说,COM的dll在asp中是可以调用的
实际上set comcn=server.createobject("MYADODLL.MYADOFuc")语句也成功创建了COM对象
经过我的分析和调试,发现带open的语句在asp中不能使用,否则就会报如上错误
我的分析办法很傻,从函数的语句最后一条开始注释掉
一条条的往上,看asp能否调用函数
结果发现单单执行sql语句没有任何问题
但是如果需要用到open返回数据集,例如使用RecordCount那么asp就报错
有哪位高手能指点一下?我实在没办法了:(
分好象少了点,但是我已经倾其所有了
接口方法如下:
function TMYADOFuc.MYSQL(const sSQL: WideString): OleVariant;
var
MyADOConnection:VARIANT;
MyRecordSet:VARIANT;
begin
MyADOConnection:=CreateOleObject ('ADODB.Connection');
MyADOConnection.Open('Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SDMS;Data Source=BH');
MyRecordSet:=CreateOleObject ('ADODB.RecordSet');
MyRecordSet.Open(sSQL,MyADOConnection);
result:=MyRecordset;
end;
在delphi中使用Import Library 将注册过的dll加如一个测试程序可以使用该函数
但是,如果在asp中使用,语句如下
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
</head>
<% session.timeout=1 %>
<body bgcolor="#FFFFFF" text="#000000">
<% 'on error resume next
set comcn=server.createobject("MYADODLL.MYADOFuc")
y= "select * from Tbl_UseHead"
x= comcn.MYSQL
%>
<% =x %>
</body>
</html>
那么就会有如下错误提示
错误类型:
MYADODLL.MYADOFuc (0x80040E4D)
/bh/dilphitest.asp, 第 12 行
就是 x= comcn.MYSQL 这一行
理论上说,COM的dll在asp中是可以调用的
实际上set comcn=server.createobject("MYADODLL.MYADOFuc")语句也成功创建了COM对象
经过我的分析和调试,发现带open的语句在asp中不能使用,否则就会报如上错误
我的分析办法很傻,从函数的语句最后一条开始注释掉
一条条的往上,看asp能否调用函数
结果发现单单执行sql语句没有任何问题
但是如果需要用到open返回数据集,例如使用RecordCount那么asp就报错
有哪位高手能指点一下?我实在没办法了:(
分好象少了点,但是我已经倾其所有了