请问,如何在ActiveX中操作数据库(100分)

  • 主题发起人 主题发起人 Laputa
  • 开始时间 开始时间
L

Laputa

Unregistered / Unconfirmed
GUEST, unregistred user!
想写一个要在Asp调用的ActiveX,从Asp中获得参数,在ActiveX中操作数据库并返回结果。
查了以前的帖子,New了个ActiveX lib,又New了个Active Server Object,添加一个方法:Test
function TTestObject.Test(const InStr: WideString): WideString;
begin
Result:=Instr;
end;
在Asp中调用:
set DelphiObj = Server.CreateObject("MyServer.TestObject")
response.write DelphiObj.Test("Got it!")
输入“Got it!”,输出“Got it!”运行完全正常。

可是要怎样在ActiveX中查询数据库?用TQuery?
新建了一个Form,加上Query控件,设好属性,把Test方法改为
function TTestObject.Test(const InStr: WideString): WideString;
begin
Result:=form1.Query1['Node_id'];
end;
运行Asp出错:“Server.CreateObject 失败”

把Form1换成ActiveFormX,function TTestObject.Test编译无法通过:“Object or class type required”
找了找,在ActiveForm的单元文件中根本没有定义“ActiveFormX”的类

请问该如何在ActiveX中操作数据库?
 
form1创建了吗?
你的是个dll吧,form没有自动创建
我用的ado、直接返回 adoquery.RecordSet

-----
http://www.8421.org
 
原先也试过,把Test改为了
function TTestObject.Test(const InStr: WideString): WideString;
begin
form1:=Tform1.create(Application);
Result:=form1.Query1['Node_id'];
end;
可是编译无法通过,出错提示:“Incompatible types:'TComponent' and 'IApplicationObject'”
Form.create要求TComponent的参数,该填什么?试过Application,TTestObject,ITest,都不好使啊
这里的Form1要怎样创建?
 
form1:=Tform1.create(nil);
 
解决了,多谢!
sigh,怎么就没想到要试试nil,看来很多东西我都还只是一知半解呀,伤心。。。
 
后退
顶部