Jump to content


Marcos-RJ

Member Since 16/09/2003
Offline Last Active 17/01/2012, 10:05
-----

Topics I've Started

Dll C#

24/10/2011, 14:58

Boa tarde amigos!
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;

        }
    }
}

IPB Skin By Virteq