Pergunta

Estou a incorporação de um JRE em um aplicativo C existente utilizando a API invocação, e Eu gostaria de ser capaz de usar JDBC para trabalhar com o banco de dados em que o código. este aplicação é uma aplicação de processamento de transações e banco de dados transação é controlado pelo código na porção C da aplicação, e o código java deve ser executado dentro dessa transação. Isso significa que eu não pode abrir um new respeito, devo voltar a usar o já existente.

Assim, há uma maneira de proporcionar o acesso JDBC a um identificador de conexão ODBC existente ao configurar o JRE? Alguns ponte JDBC-ODBC, talvez, mas ao contrário do driver existente com esse nome, que pode ser configurado para utilizar um já existente conexão e transação.

As minhas outras opções, como eu vê-los, são os seguintes:

  • Fornecer java equivalentes para cada operação de C que é possível no aplicação (isso não é desejável para muitas razões - temos um muitos métodos e duplicando-los é um pé no saco.

  • Escrever meu próprio driver JDBC que envolve a conexão ODBC com JNI. Claro, ele tinha ser um projeto divertido fim de semana (mês), mas espero que a necessidade de algo feito mais rápido do que isso.

Ajuda-me, Stack-Overflow, você é minha única esperança!

Foi útil?

Solução

Não sei se isso vai funcionar, mas ... Eu tinha um rápido olhar para o código-fonte decompiled de ponte JDBC-ODBC do Sol. Parece que você poderia subclasse o JdbcOdbcConnection para que ele inicializa-se com uma alça de ligação conhecida e um estado já abriu. Isso pressupõe que as alças de ligação no lado do Java são alças de conexão ODBC reais ou ponteiros para objetos de conexão, e que as bibliotecas ODBC utilizados pela ponte JDBC-ODBC e seu código são compatíveis no sentido de que eles podem compartilhar alças de ligação.

Você precisa verificar se a licença de Sun permite que os desenvolvedores para executar este tipo de trapaça embora.

Outras dicas

Sun fornece uma ponte JDBC-ODBC no JDK.

EDIT:. Relendo Parece que você já sabe sobre isso e não quero usá-lo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top