Hej. Funkar dll:en om du använder den i ett annat vb-projekt? Hej. Eftersom alla variabler är varianter i ASP kan man ej skicka den ByRef till en sträng. Ändra till ByVal eller till variant.Hjälp med dll
Håller på att testa dll:er mot ASP och IIS.
Skall försöka göra en klass med några metoder för databasanrop.
Men hur jag än försöker, kan jag inte returnera ett Recordset från en funktion i klassen.
"Inkompatibla typer" blir felmeddelandet.
Är det något speciellt jag måste tänka på när jag jobbar med ADO???
koden ser ut ungefär såhär, har den hemma :(
<code>
Public Function GetRS(SQL As String) As ADODB.RecordSet
Dim rst AS ADODB.Recordset
Set rst = new ADODB.Recordset
rst.Open SQL, m_strCon 'Klassvariabel
Set GetRs = rst
End Function
</code>
Säkert massa stavfel och så men i stora drag ser den ut såhär.
Nån som ser något uppenbart?
Är det något jag missar i övrigt?Sv: Hjälp med dll
Om det gör det - är felet troligen i det sätt du instansierar dll:en
/PelleSv: Hjälp med dll
Det verkar som om det blir fel när jag skapar en variabel som håller
Connection-strängen.
Skickar jag med den "direkt" så fungerar det.
ex:
funkar:
<code>
Set rst = objDB.RsBySQL("Select * From tbl_Script", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\ScriptStore\db\Scripts.mdb;Persist Security Info=False", -1, -1, -1)
</code>
funkar inte:
<code>
conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\ScriptStore\db\Scripts.mdb;Persist Security Info=False"
Set rst = objDB.RsBySQL("Select * From tbl_Script", conStr,-1, -1, -1)
</code>
Funktionen i dll:en ser ut så här:
<code>
Public Function RsBySQL(sql As String, Optional ConnectionString As String, Optional CursorType As Long, Optional LockType As Long, Optional Options As Long) As ADODB.RecordSet
Dim rstTmp As ADODB.RecordSet
Set rstTmp = New ADODB.RecordSet
On Error GoTo EH_CDBUtil_RsBySQL
If ConnectionString = "" Then
ConnectionString = p_strConnectionString
End If
rstTmp.Open CStr(sql), CStr(ConnectionString), CursorType, LockType, Options
Set RsBySQL = rstTmp
EH_CDBUtil_RsBySQL_Continue:
Exit Function
EH_CDBUtil_RsBySQL:
Resume EH_CDBUtil_RsBySQL_Continue
Resume
End Function
</code>
Vad kan detta bero på???
Sv: Hjälp med dll
<code>
Public Function GetRS(ByVal SQL As String) As ADODB.RecordSet
Dim rst AS ADODB.Recordset
Set rst = new ADODB.Recordset
rst.Open SQL, m_strCon 'Klassvariabel
Set GetRs = rst
End Function
Public Function GetRS(SQL As Variant) As ADODB.RecordSet
Dim rst AS ADODB.Recordset
Set rst = new ADODB.Recordset
rst.Open SQL, m_strCon 'Klassvariabel
Set GetRs = rst
End Function
</code>
Vilken datatyp den retunerar är inte lika viktigt.