Criei uma DLL C# e fiz as configurações necessárias para ficar visivel no registro de componentes e poder ser consumida pelo ASP clássico...
Criei 3 métodos nessa DLL:
public int Calculo(int a, int <img src='http://forum.wmonline.com.br/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='B)' /> public string strMensagem(string texto) public DataSet RetornaDados(string strSql)
No 1º meto faz um cálculo e retorna o valor, no 2º somente retorna a string passada e no terceiro preciso que retorne uma consulta na base de dados.
To tentando fazer o retorno no ASP assim:
Set Listar = CreateObject("dllok.ComPlusClass") Set Listar1 = Listar.RetornaDados("SELECT TOP 50 NomClasseCertif ,Sig_Oc FROM classe_c WHERE Sig_Oc is not null")
E faço o loop
Do While not Listar1.EOF Response.Write Listar1("NomClasseCertif") Listar1.MoveNext Loop
Erro:
Erro de tempo de execução do Microsoft VBScript (0x800A01A8)
Objeto necessário
/teste.asp, line 31
Linha 31: Do While not Listar1.EOF
É como se não criasse o objeto.
Alguem da uma ajuda aí?
Obrigado
O código da minha DLL
using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.EnterpriseServices; using System.Data; using System.Data.SqlClient; using System.Data.OleDb; [assembly: ApplicationName("_DLLTeste")] [assembly: Description("ComPlus Assmebly")] [assembly: ApplicationActivation(ActivationOption.Server)] [assembly: ApplicationAccessControl(false)] namespace dllok { #region iInterface public interface iCldllok { int Calculo(int a, int <img src='http://forum.wmonline.com.br/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='B)' />; string strMensagem(string texto); DataSet RetornaDados(string strSql); } #endregion [EventTrackingEnabled(true)] public class ComPlusClass : ServicedComponent, iCldllok { //private string connectionString = "Data Source=RDES01S;Initial Catalog=PRODUTOS_RWEB;User Id=MIMONTREAL;Password=MIDESENV;"; private string connectionString = "Provider=SQLOLEDB;Data Source=RDES01S;Initial Catalog=PRODUTOS_RWEB;User Id=mimontreal;Password=midesenv;"; public int Calculo(int a, int <img src='http://forum.wmonline.com.br/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='B)' /> { try { return a * b; } catch { return 0; } } public string strMensagem(string texto) { return texto; } public DataSet RetornaDados(string strSql) { OleDbConnection conn = new OleDbConnection(connectionString); OleDbDataAdapter adp = new OleDbDataAdapter(strSql, conn); DataSet ds = new DataSet(); adp.Fill(ds); conn.Close(); return ds; } } }