Newsgroup: it.comp.lang.visual-basic
Titolo: Ho fatto una domanda troppo complessa

Ho un problema... Ho un programma che lavora in locale ma il db potrebbe
stare altrove... ad esempio su uno spazio web oppure su un pc esterno di cui
ho un ip statico.
La mia domanda è questa. Posso creare una dll che registrata sia sul client
che sul eventuale server mi metta in comunicazione il db?Se il DB fosse su
un pc in rete saprei farlo ma ponendo di avere solo l'indirizzo statico
della macchina?
Se uso l'istruzione: "Set MyObject = createObject("nomedll", "ip-statico")"
posso sperare di poter parlare con la dll server e di poter eseguire
modifiche sul DB?
se usassi la stessa istruzione ammesso che quella vada bene x un
collegamento web andrebbe bene?
Grazie!!!

 Se uso l'istruzione: "Set MyObject = createObject("nomedll",
"ip-statico")"
Insomma, forse sei un po' fuori strada.. hai mai usato CreateObject
prima? Sai a che cosa serve?
Per finire, e`, ovviamente, possibile fare dialogare attraverso la
rete un programma con un db residente su un server, ma bisognerebbe
avere qualche informazione in piu` su quello che devi fare..
--
ale
www.sen.it

 avere qualche informazione in piu` su quello che devi fare..
Mi inserisco su quell' OVVIAMENTE e domando : si potrebbe avere un
suggerimento su come è preferiribile farlo (db Access) ?
Grazie
Ugo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 si potrebbe avere un suggerimento su come è preferiribile farlo (db
Access) ?
Qualche precisazione:
La tua applicazione client e` scritta in VB o usi Access come client?
Se usi Access come client di un altro DBMS, la funzionalita` di
collegamento con SQL server e` built-in dalla versione 2000 (basta ad
esempio creare un file adp), mentre tramite ODBC e/o Query
pass-through puoi collegare tabelle o query di altri database, posto
che questi espongano i loro dati tramite ODBC.
Se usi Access come client di un database Jet, potresti anche qui
collegare le tabelle tramite ODBC, ed esiste anche una procedura
guidata che consente di dividere un file mdb access in due file, di
cui uno con soltanto le tabelle ed i dati, l'altro con le query; la
cosa funziona abbastanza in ambienti Lan con non molti utenti, tieni
presente pero` che l'ultima volta che ho fatto una cosa del genere fu
nel Maggio del 1998, se possibile non userei Jet come db(ms o fm?
;-)..
Se hai scritto un'applicazione VB, hai diverse opzioni, probabilmente
la piu` semplice e` usare un'origine dati ODBC nelle macchine client,
ma vi e` una pletora di soluzioni alternative (ADO, RDS, ..)
--
ale
www.sen.it

 ha scritto nel messaggio
news:aosgt2$pe5h1$1...@ID-44839.news.dfncis.de...


 ho gia usato la createObject prima
E ti posso chiedere per che cosa ti e` servita, e come l'hai
utilizzata?
La funzione CreateObject(ProgID as String, [Server as String]) viene
normalmente usata per creare un oggetto COM e ritornare un riferimeno
al chiamante.
Poniamo il caso che tu voglia creare un oggetto COM chiamato
"Access.Application" (praticamente Access), normalmente si
scriverebbe:
myAcc =  CreateObject("Access.Application")
E questa creerebbe un processo Access in esecuzione sul computer
locale.
Posto di avere i necessari privilegi, si potrebbe pensare di lanciare
un processo Access in un computer remoto sulla stessa rete locale (o
comunque, sulla stessa rete MS) eseguendo:
myRemoteAcc =  CreateObject("Access.Application", "\\ComputerRemoto")
Se ho capito bene, credo che questo sia stato finora il metodo da te
utilizzato per aprire un'applicazione su un computer remoto.
Ora bisogna chiarire un concetto: Access e` in realta` l'interfaccia
grafica venduta dalla MS come client built-in di 2 suoi dbms, il Sql
Server ed il Jet (per inciso la MS ha in realta` comprato da terzi
entrambi i prodotti qualche anno fa').
Per accedere ai dati tu non hai strettamente bisogno di un processo
Access in esecuzione su un computer (sia locale che remoto), perche` i
dati sono in realta` immagazzinati dentro un database di tipo Jet o
Sql Server (nel tuo caso propendo per la prima opzione).
Se l'indirizzo IP e` statico, e non vuoi scrivere troppe righe di
codice, la cosa piu` semplice e` probabilmente scriversi un origine
dati ODBC per quella risorsa nel computer server ed accedervi
utilizzando il provider OLE DB Remoting Provider nel computer client,
sempre tramite l'apposito wizard presente nell'origine dati ODBC.
Probabilmente potresti essere interessato al Microsoft OLE DB Remoting
Provider:
1 -
http://msdn.microsoft.com/library/en-us/oledb/htm/oledbprovoverview_of
_the_ole_db_remoting_provider.asp
2 -
http://msdn.microsoft.com/library/en-us/ado270/htm/mdrefmsremote.asp
(Attezione ai link, potrebbero rompersi)
Un'altra lettura interessante, anche se si parla di Data Access Pages,
potrebbe essere:
http://msdn.microsoft.com/library/en-us/dnacc2k2/html/deploydap.asp?fr
ame=true
Molte delle cose che dice sono applicabili in generale.
--
ale
www.sen.it