Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: Kayla - Novembre 16, 2014, 07:00:55 pm

Titolo: Db Remoti
Inserito da: Kayla - Novembre 16, 2014, 07:00:55 pm
vari provider offrono database con i servizi Hosting, es.MySql
ora mi chiedo se attivando il servizio, potrei fare esperimenti su un Db remoto
a livello componenti direi ZeosLib, mentre a livello logica tra un Db in Lan e uno Remoto cosa cambia ?
se accedo al Db su Lan tramite ip/nomedb anzichè path/nome.db, variando l'ip da Lan a remoto cambia qualcosa nella modalita' di accesso, sempre a parita' di Db e driver e accesso desktop non web.
Mi aspetto che i tunnell SSH siano gestiti dal provider
Titolo: Re:Db Remoti
Inserito da: nomorelogic - Novembre 17, 2014, 12:34:44 pm
vari provider offrono database con i servizi Hosting, es.MySql
ora mi chiedo se attivando il servizio, potrei fare esperimenti su un Db remoto
a livello componenti direi ZeosLib, mentre a livello logica tra un Db in Lan e uno Remoto cosa cambia ?
se accedo al Db su Lan tramite ip/nomedb anzichè path/nome.db, variando l'ip da Lan a remoto cambia qualcosa nella modalita' di accesso, sempre a parita' di Db e driver e accesso desktop non web.
Mi aspetto che i tunnell SSH siano gestiti dal provider

due database che sono su macchine differenti da quella del client sono sempre db remoti: a livello logico non c'è quindi alcuna differenza tra un dbserver remoto che gira su una macchina in lan ed un dbserver remoto che gira da qualche parte su internet (es: provider)
se devi fare degli esperimenti di connessione basta installare un dbserver in lan

altro discorso riguarda la latenza per la risposta del server remoto: se esegui una query il cui resultset occupa 100MB allora su un server remoto ma in lan non ti accorgerai quasi di nulla, su un server remoto ma fisicamente altrove possono volerci minuti (dipende dalla banda del provider, dalla connessione, ec...)

se devi sviluppare una applicazione destinata a girare su un dbserver remoto in host su un provider (= tempi di latenza importanti) ti conviene iniziare prendendo subito l'hosting; questo per evitare di sviluppare una applicazione che poi dovrai buttare perché non hai tenuto conto dei tempi di risposta



Citazione
se accedo al Db su Lan tramite ip/nomedb anzichè path/nome.db, variando l'ip da Lan a remoto cambia qualcosa nella modalita' di accesso, sempre a
relativamente alla connessione: se il db è su lan, assolutamente, non devi accedere come path/nome.db
ammesso che sia possibile fare una cosa del genere (per fortuna alcuni dbserver si rifiutano), il dbserver lavorerebbe gestendo il file fisico dei dati attraverso i servizi di rete (pacchetti smb)

la connessione tipo path/nome.db la puoi fare solo quando dbserver + nome.db risiedono sulla stessa macchina che fa sia da client che da server
ti diro... in questi casi io uso la sintassi: 127.0.0.1/nomedb

riguardo la sicurezza della connessione (ssh) devi vedere cosa offre il provider ma non è un problema di programmazione, bensì di comunicazione
Titolo: Re:Db Remoti
Inserito da: Kayla - Novembre 18, 2014, 11:09:54 am
grazie della risposta, breve e chiara.

Citazione
ti diro... in questi casi io uso la sintassi: 127.0.0.1/nomedb
e  localhost/<nome db>
potrebbe essere equivalente
su <nome db> posso avere un <directory>/nomedb ?

Mi stuzzica l'idea di provare un db server su una macchina virtuale, e visto che Lazarus va anche su Linux;
con VirtualBox ho creato una macchina virtuale e installato Linux Server, assegnato Ip statico
Virtual Box e' configurato nella sezione Rete come NAT, provato anche con Scheda con Bridge

se da Windows pingo l'IP statico di Linux non risponde, ancora prima di aprire le porte del db , dovrei avevre la connessione tra Win e Linux,
dove trovo maggiori info, su questi problemi ?

Lazarus e' un po' cosi' come interfaccia (mi pare dispersiva, con tutte le finestre scollegate), ma allo stesso tempo, mi pare abbia buone potenzialita', come componenti di connesione ai Db piu' diffusi PostgreSql, Firebird, MySql.
Titolo: Re:Db Remoti
Inserito da: Stilgar - Novembre 18, 2014, 10:32:06 pm
Ciao,
  strano che VirtualBox non sia pingabile.
Domani controllo la configurazione della vb in ufficio.
Non ricordo di aver messo nessun ip statico. Mi sembra solo "localhost"... ma ero interessato alle porte ... (Lavoro con 2 WebShpere che rispondono a porta diverse).

Per le finestre scollegate, è una questione storica legata a delphi.

Stilgar
Titolo: Re:Db Remoti
Inserito da: nomorelogic - Novembre 19, 2014, 09:05:09 am
Per connettersi puoi usare indifferentemente:
. 127.0.0.1:/percorso/dbname.ext
. localhost:/percorso/dbname.ext
Per il nome del DB spesso puoi configurare degli alias che ti permettono di nascondere il path.

Per il discorso del ping, devi mettere la scheda come bridge (con nat la virtuale macchine la raggiungi solo dall'host) e configura i gateway.

Per le finestre di Lazarus da qualche parte ho letto che c'è un package per ottenere il docking ma non l'ho mai provato.
Titolo: Re:Db Remoti
Inserito da: Kayla - Novembre 19, 2014, 04:16:09 pm
grazie dell'interessamento,
ho risolto, aggiornando VirtualBox alla 4.3.1.8 , con la 4.3.1.2 non riconosceva la sk di rete .

altra curiosita'
se ho un db su 192.168.1.100/3050:c:\test\db.fdb

come testo se il db esiste sul server 192.168.1.100/3050
ho provato con
Codice: [Seleziona]
 bEsiste := false;
 if FileExists(192.168.1.100/3050:c:\test\db.fdb) then bEsiste := true;

risulta sempre false, se tolgo l'IP lo cerca sul disco locale.
Titolo: Re:Db Remoti
Inserito da: nomorelogic - Novembre 19, 2014, 04:53:06 pm

Codice: [Seleziona]
 bEsiste := false;
 if FileExists(192.168.1.100/3050:c:\test\db.fdb) then bEsiste := true;


Kayla quà bisogna fare un po' di chiarezza...
passi che non ci sono gli apici (quando hai problemi col codice devi sempre fare copia/incolla)
con questa istruzione stai cercando di testare l'esistenza di un file su un filesystem remoto attraverso la porta di firebird...
non è l'approccio giusto (e neanche possibile)

quando c'è un server di mezzo (sia esso database, smtp, pop3 o vattelappesca server) locale o remoto che sia, non ha senso cercare tra i sui file... mai.
se devi testare l'esistenza di un database devi tentare una connessione al database