Newsgroup: it.comp.lang.delphi
Titolo: Collegamento database in rete

Ho creato con Delphi7 una applicazione che consiste in un file eseguibile 
linkato ad un file di database esterno(AbsoluteDataBase,che può contenere 
una o più tabelle al suo interno).
Per il momento si tratta di una semplice agenda di inserimento dati.
Mettiamo il caso che io distribuisca l'eseguibile (Praticamente la form di 
interfaccia per inserire i dati)ad un amico che si trova a Milano
ad uno che si trova a Torino ed a uno che si trova a Bologna,senza comunque 
il file di DataBase,ora vorrei sapere a grandi linee cosa dovrei fare(se è 
possibile)per fare in modo che quando i tre amici fanno partire l'eseguibile 
codesto sia linkato al file di database in modo
che loro possano modificare i dati o aggiungerli ecc.,in altre parole una 
condivisione in tempo reale.
Praticamente il database lo vorrei mettere su una rete in Internet e codesto 
file di database deve essere accessibile solo attraverso l'interfaccia da me 
creata.
Non si tratta di poter scaricare il file di database,ma di aprirlo da 
Internet e poterlo aggiornare,ripeto con l'interfaccia della mia 
applicazione Delphi7(Ovviamente anche se il mio PC è spento)
Devo come minimo avere un mio sito personale?
Devo rivolgermi a terze parti?(Credo di sì)
Scusate la mia ignoranza sulle reti.
Grazie a chi mi dà una risposta anche generalizzata.

Ihmo, piu' che una app delphi, per  casi come il tuo la soluzione
ottimale sarebbe una app web.
A.

 applicazione Delphi7(Ovviamente anche se il mio PC è spento)
devi usare un database su server. Un software di database, intendo, che tu 
possa gestire a distanza con comandi SQL.
La tua idea, invece, molto ingenua, richiederebbe l'uso di una VPN, cosa che 
con le adsl italiane è utopia, viste le velocità ridicole di upload, senza 
considerare poi che dovresti implementare tutta la logica di lock necessaria 
nell'applicativo.
Meglio ancora, progetta un'applicazione web residente su server e falla 
usare via browser ai vari utenti. Rimanendo nell'ambito Delphi, puoi anche 
sfruttare Intraweb che con D2010 è gratuito e utilizzabile con un max di 5 
connessioni aperte.
Sandra 

 gratuito e utilizzabile con un max di 5 connessioni aperte.
Sono d'accordo sul tuo post, ma sul consiglio vorrei dire che essendo 
l'OP privo di skill in ambito server side, sarebbe meglio che 
acquisisse skills su tecnologie futuribili e vendibili, piuttosto che 
su intraweb che lo terrebbe relegato nella nicchia di delphi.
Per tecnologie vendibili e futuribili mi riferisco ad una piattaforma 
LAMP (
http://it.wikipedia.org/wiki/LAMP_(piattaforma)
) oppure anche 
all'ottimo visual studio express (
asp.net
) di microsoft.
Java e tutti i framework ad esso collegati li vedo già più impegnativi 
considerato il livello dell'OP.
Ciao
-- 
Morde

 connessioni aperte.
.pero' le cose non vanno dette a meta'...
Quello che NON hai detto e':
1) intraweb non e' di fatto uno standard per il web quanto una
FORZATURA per usare delphi su web.
2) intraweb non e' una soluzione scalabile
A.

 
Al di là dei consigli che ti hanno già dato e che non posso che sposare 
interamente, provo anche a ripartire dal tuo punto di vista che presumo 
sia dettato dalle tue attuali conoscenze e skill.
Più che un sito personale (dominio+hosting+mail) hai bisogno di un 
servizio hosting che abbia le seguenti caratteristiche minime:
- attivo su Internet h24
- hosting del DBMS da scelto o che cmq sai utilizzare
- accesso diretto al DB
Il tutto è fattibile sia direttamente (se hai un PC "server" da esporre 
in rete e il tuo provider ti vende un IP fisso) che tramite uno dei 
tanti service provider che vendono spazio su Internet (in questo caso, 
attenzione al punto 3, accesso diretto al DB).
Sul piano pratico, nel corpo dell'applicazione, imposterai i parametri 
di collegamento al server/DB, qualcosa tipo:
host: 205.122.100.34 (IP fisso del server che contiene il tuo DB)
DB User: nome utente cui avrai concesso gli opportuni diritti sul DB
DB Password: password dell'utente di cui sopra.
Ottenuta la connessione, operi sulle tabelle del DB con i soliti comandi 
SQL.
Ovviamente si tratta di uno schema del tutto generico e privo di 
sicurezza (basti pensare che i tuoi 3 amici accedono tutti con lo stesso 
utente..), ma utile per inquadrare gli elementi di base per fare ciò che 
desideri senza dover necessariamente apprendere altro.
Ciao.

 dover necessariamente apprendere altro.
E se cerca su google LAMP tutorial, oppure va su codeproject per .net, 
troverà una marea di documentazione e how-to.. c'è veramente di tutto.
Riguardo il provider, io mi trovo molto bene con aruba, economico e 
veramente ben fatta la parte tecnica, pannello di controllo hosting, 
ecc..
-- 
Morde

//Più che un sito personale (dominio+hosting+mail) hai bisogno di un
//servizio hosting che abbia le seguenti caratteristiche minime:
//- attivo su Internet h24
//- hosting del DBMS da scelto o che cmq sai utilizzare
//- accesso diretto al DB
//Il tutto è fattibile sia direttamente (se hai un PC "server" da esporre
//in rete e il tuo provider ti vende un IP fisso) che tramite uno dei
//tanti service provider che vendono spazio su Internet (in questo caso,
//attenzione al punto 3, accesso diretto al DB).
//Sul piano pratico, nel corpo dell'applicazione, imposterai i parametri
//di collegamento al server/DB, qualcosa tipo:
//host: 205.122.100.34 (IP fisso del server che contiene il tuo DB)
//DB User: nome utente cui avrai concesso gli opportuni diritti sul DB
//DB Password: password dell'utente di cui sopra.
//Ottenuta la connessione, operi sulle tabelle del DB con i soliti //comandi
//SQL.
Prima di tutto grazie per la tua risposta.
Se seguo il tuo consiglio,ottenuta la connessione,vuoi dire che potrei 
operare sulle tabelle del DB (MySQL) con i comandi SQL tramite una mia form 
personalizzata fatta in Delphi??
Oppure devo usare l'interfaccia dell'Hosting?
Grazie per una eventuale risposta. 

 Grazie per una eventuale risposta.
Vorresti usare da remoto un db mysql ospitato da un provider, giusto?
In teoria dovrebbe funzionare, ma entrando dall'esterno verifica che il 
provider abbia le porte aperte sul firewall per la connessione mysql.
Fai attenzione perchè di solito questo approccio si usa per 
programmazione lato server, cioè quando hai dei sorgenti che vengono 
eseguiti sul server dal web server, e la connessione avviene sul server 
tra i sorgenti e il database, senza uscire all'esterno.
Mi sto riferendo ad una tipica LAMP, già citata in questo thread.
-- 
Morde


Lungi da me l'idea di scatenare flam oppure di far polemica...
Ma quale provider ti espone in internet (al mondo) la porta xxxx per 
poter amministrare/interrogare un DB ??
I DB si Amministrano (di solito) con interfaccia Web oppure con VPN.
I dati non sono esposti in internet ma vengono mostrati tramite pagine 
web o webservice.
L'ho fatta molto semplice :)
Cio' non toglie che se qualche anima volenterosa vuole esporre il suo DB 
su internet per mezzo della porta xxxx lo puo' fare benissimo.
^_Goblin_^
-- 
Ibis et redibis non morieris in bello
http://goblinland.myminicity.com/

 su internet per mezzo della porta xxxx lo puo' fare benissimo.
basta acquistare un server virtuale, installarci MySql e farci quello che 
vuoi.
Sandra 

 I DB si Amministrano (di solito) con interfaccia Web oppure con VPN.
Mi trovi assolutamente d'accordo, tant'è che ho suggerito una soluzione 
LAMP.
Io cercavo di seguire il pensiero dell'OP dove tecnicamente non vedo 
impossibile realizzare una soluzione di quel tipo, magari sorretta da 
una bella vpn come fai notare tu, dove un client scritto in delphi si 
collega ad un server dietro al quale gira un db mysql.
Ciao
-- 
Morde


Io un giochino del genere l'ho fatto, in modo molto amatoriale, con 
FireBird e Hamachi. :)


 e Hamachi.
Ecco, a proposito di hamachi, l'ho cercato per fare una teleassistenza 
ma non capisco se l'hanno chiuso o cosa.. fattostà che ho risolto con 
teamviewer.. tu ne sai qualcosa?
Un saluto
-- 
Morde


Per "Giocare" uso la versione 1.0.3.0 di hamachi e devo dire che 
funziona benino, ho collegato sino a 8 client contemporaneamente con la 
mia macchina casalinga, dunque una ADSL di quelle commerciali, 
ovviamente la versione free.
La nuova versione 2.0.qualcosa ( 
https://secure.logmein.com/products/hamachi2/
 ), mi ha dato qualche 
problemino, sembra, e dico sembra in quanto non mi sono documentato 
personalmente, ma ho sentito le solite voci :), che hamachi dopo essere 
stata comprata da non ricordo chi, sia stata "castrata" in alcune sue 
parti, Ovviamente sto parlando sempre della versione FREE. Di più nin so :)
^_Goblin_^


 Ovviamente sto parlando sempre della versione FREE. Di più nin so
Grazie per il feed :)
ciao
-- 
Morde

 form personalizzata fatta in Delphi??
Esattamente ciò che intendevo. Un servizio di acceso diretto al DB lo 
offre GoDaddy, ma è un'opzione che va chiesta PRIMA di creare il db (e 
ancora meglio, prima di attivare il piano di hosting) in quanto ti 
migrano su un host dove tale accesso è abilitato/consentito.
In quel caso il DB è MySQL.
Non so come si regoli Aruba, ma non credo sia qualcosa di tanto diverso.
Prova a chiedere all'assistenza.
La strada maestra per l'accesso ai DB su Internet resta quella che ti è 
stata consigliata da tutti sin dall'inizio del thread, ma nulla vieta 
che la tua form contenga delle stringhe SQL da "inviare" al DB remoto 
con cui hai stabilito la connessione.
Poi "ricevi" i dati e li mostri nelle grid o nei campi appositi che 
avrai predisposto.
Buona Pasqua