程序做二次查询,需要关闭rs.close,然后再次打开rs进行下一次查询。现在问题出在怎么样关闭这个rs,请大家帮忙。ASP代码:<%
Dim rs
Dim DelphiASPObj
Set DelphiASPObj = Server.CreateObject("zm.Data_link")
Set rs = DelphiASPObj.SelectData("select * From admin")
Do while not rs.eof
response.write rs("username")&"<br>"
rs.movenext
Loop Set rs = DelphiASPObj.SelectData("select * From hotelmain")
Do while not rs.eof
response.write rs("id")&"<br>"
rs.movenext
Loop
%>DELPHI代码:function SelectData(const Get_Sql: WideString): OleVariant; safecall;
function CloseConnect: OleVariant; safecall;
var Link_String : String;
Conn : OleVariant;
rs:OleVariant;
procedure TData_Link.OnStartPage(const AScriptingContext: IUnknown);
begin
inherited OnStartPage(AScriptingContext);
Conn := CreateOleObject('ADODB.Connection');
rs := CreateOleObject('ADODB.Recordset');
end;
如下是像以下这样子的代码,程序会告诉“对象关闭时,操作不被允许”,发现是rs.close在程序中已经关闭了,到ASP中的话就出错。function TData_Link.SelectData(const Get_Sql: WideString): OleVariant;
var
sql:WideString;
begin
GetString;
Conn.open(Link_String);
sql := Get_Sql;
rs.open (sql,conn,1,1,1);
result := rs;
rs.close;
end;
多添加一组函数代码用于关闭rsfunction TData_Link.CloseConnect: OleVariant;
begin
rs.close;
end;在ASP中使用:
Dim rs
Dim DelphiASPObj
Set DelphiASPObj = Server.CreateObject("zm.Data_link")
Set rs = DelphiASPObj.SelectData("select * From admin")
Do while not rs.eof
response.write rs("username")&"<br>"
rs.movenext
Loop
DelphiASPObj.CloseConnect'提示没有CloseConnect对象,应该怎么做才能把rs关闭呢?
Dim rs
Dim DelphiASPObj
Set DelphiASPObj = Server.CreateObject("zm.Data_link")
Set rs = DelphiASPObj.SelectData("select * From admin")
Do while not rs.eof
response.write rs("username")&"<br>"
rs.movenext
Loop Set rs = DelphiASPObj.SelectData("select * From hotelmain")
Do while not rs.eof
response.write rs("id")&"<br>"
rs.movenext
Loop
%>DELPHI代码:function SelectData(const Get_Sql: WideString): OleVariant; safecall;
function CloseConnect: OleVariant; safecall;
var Link_String : String;
Conn : OleVariant;
rs:OleVariant;
procedure TData_Link.OnStartPage(const AScriptingContext: IUnknown);
begin
inherited OnStartPage(AScriptingContext);
Conn := CreateOleObject('ADODB.Connection');
rs := CreateOleObject('ADODB.Recordset');
end;
如下是像以下这样子的代码,程序会告诉“对象关闭时,操作不被允许”,发现是rs.close在程序中已经关闭了,到ASP中的话就出错。function TData_Link.SelectData(const Get_Sql: WideString): OleVariant;
var
sql:WideString;
begin
GetString;
Conn.open(Link_String);
sql := Get_Sql;
rs.open (sql,conn,1,1,1);
result := rs;
rs.close;
end;
多添加一组函数代码用于关闭rsfunction TData_Link.CloseConnect: OleVariant;
begin
rs.close;
end;在ASP中使用:
Dim rs
Dim DelphiASPObj
Set DelphiASPObj = Server.CreateObject("zm.Data_link")
Set rs = DelphiASPObj.SelectData("select * From admin")
Do while not rs.eof
response.write rs("username")&"<br>"
rs.movenext
Loop
DelphiASPObj.CloseConnect'提示没有CloseConnect对象,应该怎么做才能把rs关闭呢?
response.write rs("username")&"<br>"
rs.movenext
Loop rs.close .....另外,可以直接在ASP种创建ADOCONNECTION和ADODATASET和DELPHI种一样使用何必要在你的组件中转一圈呢。