delphi3000.com - the free delphi knowledge platform
delphi3000.com - the free delphi knowledge platform
500 Users Online NOW
Have a look at your member-status

connecting people's knowledge


  - Recent ArticlesRSS feed for Recent Articles on delphi3000.com
  - List of All Articles
  - Top Viewed Articles
  - Articles (+Attachem.)
  - Articles Of Interest
  - Categories
  - Top Uploader
  - Search
  - Index

  - My Home
  - Submit an Article
  - My Articles
  - My Personal Data
  - My Bookmarks
  - Activities
  - Login/Logout

  - Sign Up
  - Why Sign Up
  - Newsletter

  - Press
  - Advertise

  - Contact
  - Feedback





Community
Borland
ClubeDelphi
Dr. Bob
UK-BUG
Delphi Meetings
Planeta Delphi



Loremo - the 1.5 liter car coming in 2009




Startblatt.de






Share this article with friendsShare this article with friends
Rate this articleRate this article - to keep the quality of delphi3000.com !
Comment this article or read through previous comments (0)


Pass a recordset from a COM object to ASP VBScriptGo to Bernhard Angerer's websiteFormat this article printer-friendly!Bookmark function is only available for registered users!
ADO Disconnected recordsets
Product:
Delphi 4.x (or higher)
Category:
COM+
Skill Level:
Scoring:
Last Update:
01/29/2003
Search Keys:
delphi delphi3000 article borland vcl code-snippet ADO COM RecordSet TADOQuery ADOExpress
Times Scored:
3
Visits:
2642
Uploader: Bernhard Angerer
Company: bluestep.com IT Consulting
Reference: N/A
 
Question/Problem/Abstract:
How to return a resultset (dataset) from COM to ASP
Answer:



the Delphi code:


uses
  ADOInt;

...

function ASPObj.GetRS: OleVariant;
var
   ADODataSet1: TADODataSet;
   RecordSet  : _Recordset;
begin
   ADODataSet1 := TADODataSet.Create(nil);
   try
     ADODataSet1.ConnectionString := Provider;
     ADODataSet1.CommandText := 'SELECT * FROM ' + TabName;
     ADODataSet1.Open;
     RecordSet := ADODataSet1.Recordset._xClone;
     RecordSet.Set_ActiveConnection(nil);

     Result := RecordSet;
     ADODataSet1.Close;
   finally
     ADODataSet1.Free;
   end;
end;




from the Delphi help (why to call Free not Destroy):

Do not call Destroy directly in an application. Usually destruction of ADO query components is handled automatically by Delphi. If an application creates its own instances of a query, and does not assign an Owner that is responsible for freeing the dataset, then the application should call Free, which checks that the query is not nil before calling Destroy.






the ASP VBScript code:


Dim DelphiASPObj
Dim RS

Set DelphiASPObj = Server.CreateObject("ActiveXDLL.ASPObj")

Set RS = DelphiASPObj.GetRS


RS.MoveFirst

do until RS.EOF
  for each field in RS.fields
    Response.Write field.value & " "
  next
  Response.Write "
"
  RS.MoveNext
loop

...

Set DelphiASPObj = Nothing
Set RS = Nothing







Please rate this article!
Skill level:
BeginnerExpert

Useful:
No!Very!

Overall rating:
PoorExcellent



Comments to this article
Write a new comment













 
Sign up to consume product discounts for Bronze memberships !

read more


  Visit our Sponsor

 

  Community Ad of
E. Irigoyen
 
   














 







     
  Copyright © 2000 - 2007 delphi3000.com - All rights reserved. Terms of use. || Privacy
delphi3000.com is a service by bluestep.com IT-Services GmbH (Vienna)