Can I pass ADO objects like Command and Recordset to an ActiveX DLL (acting as a middle layer) so that it automatically fills the data in them and I can access it from ASP?
You do not need to pass the Command and Recordset objects to an ActiveX DLL acting as your middle layer. You can simply invoke a method in your ActiveX DLL that returns a Recordset object. For example, suppose you create a Method called GetRecordSet in your VB COM component. The signature for the method (function declaration) would look like this:
Public Function GetRecordSet(byval strConnectionString as string, _ byval strSQL as string) as ADODB.Recordset
Within this function, you would declare a Connection object, use the “strConnectionString” variable to connect to the database and populate a Recordset object using the SQL statement passed in the argument “strSQL”. You can then return this Recordset object as the return value of your function where objRS is the recordset variable you created in the previous function code:
Set GetRecordset = objRS
From within your ASP page, you would then call this method as follows:
Dim objRS, strSQL, strConnstringDim objDALstrConnString = "Your valid connection string here"strSQL = "Select * from customers"Set objDAL = Server.CreateObject("MyComponent.MyClass")set objRS = objDAL.GetRecordSet(strConnString, strSQL)set objDAL = Nothing
Now you have a recordset “objRS” obtained from the middle tier.