Newsgroup: it.comp.programmare
Titolo: VisualC++, Oracle, Dll e vari...

Salve,
premetto che non sono un programmatore c++, ma per il mio progetto di
tesi è necessario che sviluppi una parte del programma in c++, e non
sò proprio come fare...
Devo fare una dll caricabile poi da ewe (un linguaggio tipo java...)
che si colleghi ad un server remoto ad un database oracle. A quanto ho
visto il metodo più gettonato è quello di usare la libreria
"odbc32.dll". C'è qualcuno che mi possa aiutare? Magari buttandomi
anche giù qualche riga di codice, non ci credo che nessuno abbia mai
sbattuto la testa di fronte ad un problema del genere... Tante grazie!
Spero di ottenere qualche risposta...

 
Non ho capito granche' della tua esigenza.
Devi scrivere una procedura che si connette ad un server Oracle e devi 
farla in C++ utilizzando delle funzioni di appoggio di una libreria?
Ho capito bene?
Poi pero' dici che devi creare una dll, da far richiamare ad un 
linguaggio tipo java e qui mi perdo.
Che cosa intendi per "tipo java"?
Che si appoggia ad una virtual machine?
Perche' se cosi' fosse non puoi fare uso di dll esterne alla virtual 
machine.
Altrimenti definisci meglio "tipo java".

Dovrei creare una libreria dll richiamabile tramite Ewe (
http://www.ewesoft.com/
 ), che è un linguaggio di programmazione che
usa delle librerie in comune con java, in più ne ha anche di sue. Le
dll posso caricarle da questo tramite la sua ENI (Ewe Native Interface)
interfaccia che mi permette di caricare librerie dll scritte in c++ in
modo da implementare i metodi nativi di java.
In pratica pere certo posso caricare le dll. Ho trovato ieri che un
modo semplice è utilizzare ODBC, ma non ho capito come fare... Tante
grazie!

 wrote in message
news:1160546026....@b28g2000cwb.googlegroups.com

Ma il tuo problema e' realizzare una DLL o utilizzare l'ODBC? Per il
primo problema posso darti una mano, per il secondo, mi spiace, ma non
ho mai usato ODBC.
Visto che hai Oracle in mezszo ai piedi, fossi in te, io farei un
pensierino all'uso di pro*C, cosi' ti scrivi direttamente l'SQL in
mezzo al codice e dai tutto in pasto al precompilatore che ti genera
tutte le chiamate necessarie.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ho mai usato ODBC.
ODBC lo utilizzo io, proprio per chiamare un DB oracle, ma l'unica
applicazione che gestisco di questo tipo e' in VBScript all'interno di
pagine ASP.
In ogni caso il concetto non cambia:
devo istanziare l'oggetto, collegarmi al DB, eseguire dei comandi che mi
restuiscono un recordset, chiudo la connessione e buonanotte.
Naturalmente c'e' tutto un lavoro sistemistico da fare a priori, vale a
dire:
1) installare l'ambiente client Oracle sulla macchina dove gira il tutto
2) configurare il tnsname.ora coi parametri del server
3) configurare ODBC con la definizione del database Oracle in questione
Quando questo aspetto sistemistico e' impostato, l'applicazione puo'
collegarsi al database attraverso ODBC, istanziando un oggetto specifico
e poi utilizzando metodi e proprieta'.


premetto che il database in remoto è già perfettamente funzionante,
prima sono riuscito a configurare le ODBC in modo da far puntare il
database giusto.
Il file tnsnames è a posto, e così tutta la parte riguardante
oracle...
Sarebbe possibile avere un'implementazione in codice dell'interfaccia
c, visto che la sola teoria non mi è sufficiente....
Quello che devo fare in pratica è una dll (che poi richiamerò con Ewe
(
www.ewesoft.com
)) che mi vada a puntare ai metodi delle ODBC.
Ho riscontrato i seguenti problemi:
1- non riesco a includere la dll odbc32.dll in c. (#include, #using,
#import etc...)
2- non riesco a richiamare la dll in nessun modo.
3- non ho idea di come costruire dei metodi che vadano a puntare i
metodi della dll, ma con dei nomi "miei"
4- devo per forza costruire una dll di passaggio in quanto in questa
devo mettere parte di codice ewe, altrimenti il linguaggio non riesce a
gestirla.
Ancora grazie, spero qualcuno sappia rispondermi!

 Ancora grazie, spero qualcuno sappia rispondermi!
HTH
C:\>iao Angelo


 gestirla.
Ah! Ecco.
Quindi devi semplicemente definire un oggetto tuo che inglobi l'oggetto
ODBC e tutti i suoi metodi (non e' piu' semplice derivarlo cosi' erediti
tutto e buonanotte?)
e poi compilare questo codice in una dll che verra' usata dal quel
linguaggio li'...
Partiamo un po' dagli strumenti che hai in mano: 
che compilatore stai usando?


 linguaggio li'...
se per voi è semplice... cmq l'idea credo sia proprio questa...
Grazie e ciao!

 linguaggio li'...
se per voi è semplice... cmq l'idea credo sia proprio questa...
Grazie e ciao!

 
Non ci sono cose semplici o cose complesse: ci sono cose che si sanno e 
che non si sanno.

Da allora il C non e' cambiato.
O meglio, è cambiato (l'ultimo standard ISO è del 1999) ma le nuove
"modifiche" al C89 non sono state implementate al 100%... :-(

Do il mio contributo ... ti allego 2 file che fanno una select dalla 
user_object su una istanza oracle.
La qualità del codice è pessima ma spero ti serva come spunto per 
partire ...su 
msdn.microsoft.com
 l'uso degli odbc in C è ben affrontato.
Trasformare poi il codice  in una dll  è facile (ho anche dll che usano 
gli odbc ma nn ho qui il CVS) ma a memoria ... nn voglio mandarti fuori 
strada :)
Un ultimo consiglio ... occhio con le DLL in quanto le decorazioni 
cambiano a seconda del compilatore con cui la compili quindi accertati 
che il software che tu utilizzi (ewe) usi le dll compilate con il 
compilatore che stai usando .... oppure .... tieniti sempre una versione 
  della dll  con VC ed una con MINGW ... e vai a tentativi:)
ciao
PP