Jump to content
Marcos Vilela Alves

Conexao.open "OraOLEDB" nao funciona sem a fonte de dados windows

Recommended Posts

Boa tarde.

trabalho no desenvolvimento e suporte de um sistema VB6 de uma grande empresa.

a empresa visa migrar a versao do oracle, de 11 para 12.

 

agora acontece o seguinte.
usava-se uma Conexao_Externa.Open "Provider=MSDAORA; Data Source=XxXxX;  User ID=XXXxXX; Password=XxXxX;

esse provider não funciona mais e descobriu-se a solucao:

Conexao_Externa.Open "OracleConn.Provider=OraOLEDB.Oracle;" & Mid(STRINGCONEC, InStr(STRINGCONEC, ";") + 1), USER, PWD

 

porém essa solucao gerou outro problema.

a conexao acontece e tudo que deveria ser calculado, é.

a falha é que para que ela aconteça, é preciso inserir uma fonte de dados no windows para conexao.

 

eu nao localizei na internet, nem a razão da obrigatoriedade da fonte de dados, nem uma forma de burlar, ou utilizar da programação para tal.

 

é possível?

 

a necessidade de utilizar da programação ou de alguma outra regra junto ao oracle, é o fato de ser mais 400 máquinas que terão que ser ajustadas de início.

 

alguem sabe ajudar?

Share this post


Link to post
Share on other sites
2 horas atrás, Marcos Vilela Alves disse:

Boa tarde.

trabalho no desenvolvimento e suporte de um sistema VB6 de uma grande empresa.

a empresa visa migrar a versao do oracle, de 11 para 12.

 

agora acontece o seguinte.
usava-se uma Conexao_Externa.Open "Provider=MSDAORA; Data Source=XxXxX;  User ID=XXXxXX; Password=XxXxX;

esse provider não funciona mais e descobriu-se a solucao:

Conexao_Externa.Open "OracleConn.Provider=OraOLEDB.Oracle;" & Mid(STRINGCONEC, InStr(STRINGCONEC, ";") + 1), USER, PWD

 

porém essa solucao gerou outro problema.

a conexao acontece e tudo que deveria ser calculado, é.

a falha é que para que ela aconteça, é preciso inserir uma fonte de dados no windows para conexao.

 

eu nao localizei na internet, nem a razão da obrigatoriedade da fonte de dados, nem uma forma de burlar, ou utilizar da programação para tal.

 

é possível?

 

a necessidade de utilizar da programação ou de alguma outra regra junto ao oracle, é o fato de ser mais 400 máquinas que terão que ser ajustadas de início.

 

alguem sabe ajudar?

Oi Marcos, poderia por gentileza postar a mensagem do erro?

Share this post


Link to post
Share on other sites
10 minutos atrás, Marcos Vilela Alves disse:

image.png.8b66cf58460920a7c85d1f4227c1536a.png

A mensagem é essa. Nome da fonte de dados não encontrado e nenhum driver padrão especificado

Você já instalou o drive compativél com o seu sistema operacional? Essa mensagem está relacionado a isso também.

Share this post


Link to post
Share on other sites

Sim. a questão que cheguei depois de um dia de pesquisa foi justamente essa questão.

o drive está instalado. se eu coloco a fonte de dados ODBC no windows, a conexão acontece e efetua todas as contas perfeitamente.

quando não tenho a fonte de ODBC a conexão não acontece.

eu queria uma forma de burlar isso. e forcar o VB se conectar com o oracle sem passar pela fonte de dados utilizando o OracleConn.provider e isso parece impossível. :(

ja revirei o google. até agora não localizei uma possível solução.

 

pensei em passar a stringConnect direto  no data Source , porém não aceita, uma vez que o nome da Source fica muito longo

Share this post


Link to post
Share on other sites
11 minutos atrás, Marcos Vilela Alves disse:

Sim. a questão que cheguei depois de um dia de pesquisa foi justamente essa questão.

o drive está instalado. se eu coloco a fonte de dados ODBC no windows, a conexão acontece e efetua todas as contas perfeitamente.

quando não tenho a fonte de ODBC a conexão não acontece.

eu queria uma forma de burlar isso. e forcar o VB se conectar com o oracle sem passar pela fonte de dados utilizando o OracleConn.provider e isso parece impossível. :(

ja revirei o google. até agora não localizei uma possível solução.

 

pensei em passar a stringConnect direto  no data Source , porém não aceita, uma vez que o nome da Source fica muito longo

Encontrei alguns tópicos bacana, que creio que poderá te ajudar, se não funcionar me avise para poder ir contribuindo com alguma informação.

 

https://social.msdn.microsoft.com/Forums/pt-BR/58d74f77-87e6-409d-8fac-d0538eb332ab/fonte-de-dados-odbc?forum=vsvbasicpt

 

https://msdn.microsoft.com/pt-br/library/ms345157(v=sql.120).aspx?f=255&MSPPError=-2147217396&cs-save-lang=1&cs-lang=vb#code-snippet-2

Share this post


Link to post
Share on other sites
24 minutos atrás, Marcos Vilela Alves disse:

Muito obrigado. vou analisar os tópicos sugeridos. 

Valew, se conseguir resolver, dá um feedback. Estou as ordens. Abraços!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By clecio10
      Olá pessoal sou novo no fórum e gostaria da ajuda de vocês na resolução de um exercício de estrutura de dados, não estou sabendo como implementar os métodos com base nas perguntas do exercício. Por favor, quem puder ajudar eu agradeço de coração!
       
      Enunciado:   1. Implemente o método compareTo(Object o) da classe Item ; 2. Implemente a lista duplamente encadeada para a atender a interface ILista ; 3. Implemente a lista simplesmente encadeada circular para a atender a interface ILista ; 4. Implemente a lista duplamente encadeada circular para a atender a interface ILista ;   interface ILista { /** * Adiciona um elemento na lista * * @param dado Elemento a ser adicionado * @throws ListaException Erro caso não tenha mais espaço disponível. */ void adicionar(Item dado) throws ListaException; /** * Remove um item da lista * * @param chave informar a chave de busca do item * @throws ListaException Erro caso não tenha o item informado. */ void remover(Comparable chave) throws ListaException; /** * Caso a chave seja encontrada, retorna verdadeiro * * @param chave * @return */ boolean contem(Comparable chave) throws ListaException; /** * Retorna a quantidade de elementos * * @return a quantidade de elementos */ int getQtd(); /** * Adiciona a outra lista no final da lista. * * @param outralista a outra lista a ser somada. */ void AdicionarNoFinal(ILista outralista) throws ListaException; /** * Adiciona a outra lista no final da lista. * * @param outralista a outra lista a ser somada. */ void AdicionarNoFinal(Item[] outralista) throws ListaException; /** * Adiciona a outra lista após o item chave existente na lista. * * @param outralista a outra lista a ser somada. * @param chaveDoItemDoMeio elemento chave que antecederá a outra lista */ void AdicionarNoMeio(Comparable chaveDoItemDoMeio, ILista outralista) throws ListaException; /** * Retorna outra lista com os elementos existentes da lista. * * @param posicaoInicial posição inicial da lista a ser copiada. * @param posicaoFinal posição final da lista que deve ser copiada. */ Item[] getSubLista(int posicaoInicial, int posicaoFinal) throws ListaException; /** * Retorna a quantidade de elementos que são iguais ao informado no parâmetro. * * @param item elemento de comparação. */ int getQtdElementos(Item item) throws ListaException; /** * Remove os itens duplicados * * @throws ListaException */ void removerDuplicados() throws ListaException; } public class Item implements Comparable { private Comparable chave; private Object informacaoCompleta; public Item() { } public Item(Comparable chave) { this(); this.chave = chave; this.informacaoCompleta = chave; } public Item(Comparable chave, Object dado) { this(chave); this.informacaoCompleta = dado; } public Object getInformacaoCompleta() { return informacaoCompleta; } public void setInformacaoCompleta(Object informacaoCompleta) { this.informacaoCompleta = informacaoCompleta; } public Comparable getChave() { return chave; } public void setChave(Comparable chave) { this.chave = chave; } // Implementar o método compareTo public int compareTo(Object o) { return 0; } } public class ListaException extends Exception { public ListaException(String msg) { super(msg); } }
    • By MrKintschev
      minha duvida é sobre o Kotlin, se o mercado esta bom, kotlin com spring, se compensa estudar e principalmente sobre o kotlin javascript, apps react kotlin se isso compensa se é promissor... pq eu gostei da idea, mas nao sei se vingaria
    • By Rarukki0918
      Estou fazendo um programa no pascalzim que utiliza vetores e ele nao esta fazendo a soma dos valores pedidos na questao ,ele esta exibindo o primeiro valor digitado,a questao esta logo abaixo:
       
       
      Faça um programa que leia um vetor de 10 elementos numéricos, calcule e mostre
      a quantidade de números negativos e a soma dos números positivos desse vetor.
       
      Program dez_numeros_negativos_positivos;
      uses crt;
      VAR
      VETOR: array[1..10] of integer;
      CONT,N,P,CAIXA,SOMA:INTEGER;
      Begin
        FOR cont:=1 to 10 do
        begin
          textcolor(white);
          write('Digite o numero:');
          READLN(VETOR[CONT]);
        END;
        FOR CONT:=1 TO 10 DO
        BEGIN
          IF VETOR[CONT]<0then
          BEGIN
            N:=N+1;
          END;
        END;
        FOR CONT:=1 TO 10 DO
        BEGIN
          IF VETOR[CONT]>0 then
          BEGIN
            P:=VETOR[CONT]+VETOR[CONT];
            CAIXA:=CAIXA+P;
            SOMA:=SOMA+CAIXA;
          END;
          FOR CONT:=10 TO 10 DO
              BEGIN
               WRITELN('Quantidade de numeros negativos:');
               WRITELN(N);
                WRITELN('Soma de todos os numeros positivos:');
                   WRITELN(SOMA);
                   END; 
        END;
        READKEY;
        
      END.
    • By Claudia França
      Prezados preciso de uma ajudar para entender o que mudar e fazer a integracao com base no link https://developercielo.github.io/manual/cielo-ecommerce#visacheckout   ( padrão cielo)
      Eu gostaria de entender se so preciso mudar o nome da variáveis  para fazer com que a cielo receba a informação da transação certa. Como faço para que as requisições sejam enviadas no padrão da Cielo. ? 
       
      No php imagem, está o que eu tenho no ambiente.
      no link como a cielo quer.
       
       


    • By victormota1695
      Estou desenvolvendo um programa para trabalho de faculdade onde
      preciso usar estrutura de repetição para perguntar ao usuario um nome/itens armazena-los e quando o usuario nao quiser mais digitar os nomes ao sair do loop mostra todos os nomes que ele digitou.
       
      nao estou conseguindo preciso de ajuda. dese ja agradeço.
       
      meu codigo ate o momento e:
       
      #include <stdio.h>
      #include<stdlib.h>

      int main (){
      char lista,lista2;
      int menu1,menu2;

      printf("***BEM-VINDO AO LISTSUPER***\n\n");
      // ****Aqui o 1º menu de seleção****//
      printf("Escolha uma opção\n");
      printf("1-inserir novos itens\n2-inserir quantidade\n3-calcular valor\n4-mostrar itens\n\n");
      scanf("%i",&menu1);

      // ***Aqui e o loop para digitar os itens desejados****//
      if (menu1==1){
        while(1) {
             printf("insira os itens\n");
             scanf("%s",&lista);
             printf("deseja inserir novos itens? [1-sim/2-nao]\n");
             scanf("%i",&menu2);

       if (menu2==2){ break;}
      }
      }
      // ***Caso ele não selecione a opção para inserir novos itens aparecera esta mensagem***//
      else {
          printf("Não ha itens inseridos\nEscolha a opção ( inserir novos itens )");
      }
      //***Apos acabar de digitar os itens mostrar a lista dos itens digitados***//

      return 0;

      }
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.