1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Progress conexão com .net

Discussão em 'Progress 4GL' iniciado por elyson, Dezembro 22, 2010.

  1. baltazar

    baltazar Membro Participativo

    Por favor poste exemplo.

    Obg
  2. kirchner

    kirchner Membro Participativo Moderador

    Exemplo bem simples com o banco sports:
    Código:
    proserve sports -S 33445
    Abaixo o código .NET (C#) para conectar e ler dados. Código bem simples, não trata erros nem nada:

    Código:
    private static void ReadData() {
    	string connString = "Driver={Progress OpenEdge 10.2B Driver}; HostName=localhost; PortNumber=33445; DatabaseName=sports; LogonID=sysprogress; Password=sys";
    
    	using (OdbcConnection conn = new OdbcConnection(connString)) {
    		conn.Open();
    
    		OdbcCommand cmd = new OdbcCommand();
    		cmd.Connection = conn;
    		cmd.CommandTimeout = 30;
    
    		cmd.CommandText = "SELECT \"Cust-Num\", Name FROM PUB.Customer WHERE Country = 'France'";
    		OdbcDataReader dr = cmd.ExecuteReader();
    		while (dr.Read()) {
    			Console.WriteLine("{0} - {1}", dr.GetInt32(0), dr.GetString(1));
    		}
    		dr.Close();
    
    		conn.Close();
    	}
    }
  3. elyson

    elyson Membro Participativo

    Muito Obrigado pelo exemplo.
    Vc pode postar um exemplo ao contrario, ou seja, do Progress para o .NET..
    E mais um detalhe se eu quiser receber e passar um XML como ficaria o código.

    Vlw

    Elyson
  4. kirchner

    kirchner Membro Participativo Moderador

    Elyson,

    O código que mandei é para um programa .NET conectar em um banco progress.

    Você quer a partir de um programa progress chamar um programa .NET agora?
    Eu já fiz isso de duas formas:
    - cria um componente .NET e expõe ele como COM. Daí no programa progress usa COM-HANDLE, como se fosse usar Word ou Excel;
    - cria um WebService em .NET e acessa ele através do programa Progress.

    Não tenho exemplos, mas o fato de ser .NET "do outro lado" não muda nada. No caso do COM, é como chamar a automação do Office. No caso do WebService, é como chamar um WebService qualquer.
  5. elyson

    elyson Membro Participativo

    Boa Noite Marcos;

    Vou contar para você qual é o cenário:

    Estou em uma LAN em diferentes servidores que tem duas aplicações são elas:

    1) - A aplicação A é desenvolvida em .NET
    O usuário faz uma operação e gera um A.XML, este XML é postado em uma fila(MSMQ) e a aplicação B consome.

    2) - A aplicação B é Progress
    O usuário faz uma operação e gera um B.ML, este XML é postado em uma fila(MSMQ) e a aplicação .NET consome.

    Então o que preciso fazer é um código .NET que acione o Progress e passe um XML sem usar este conceito da fila e mesma coisa com o segundo cenário preciso de um código em progress que acione o .NET e passe para ele consumir.
    Precisava destes 2 exemplos pode ser de uma maneira resumida, vc tem algo ?

    Até penso em utilizar o ProxGen via DLL, mas isso só me resolve o primeiro item a principio e não encontro uma documentação que me esclareça como o .NET acessa essa DLL.

    Agradeço antecipado pela ajuda;

    Elyson
  6. kirchner

    kirchner Membro Participativo Moderador

    Elyson,

    Por que você quer abandonar as filas?
    Para comunicação entre servidores diferentes me parece uma alternativa boa.

    Outra opção que você poderia fazer é notificar a aplicação destino que tem um arquivo novo pra processar. Mas isso é chato. Talvez você teria que usar um socket TCP, algo assim. Não tenho muitas idéias nesse caso..

Compartilhe esta Página