Connessione database remoto..e upload file.

di il
17 risposte

Connessione database remoto..e upload file.

Ciao a tutti, vorrei fare una domanda e chiedere un consiglio, magari è una cosa stupida ma non riesco ad uscirne.
Dovrei fare un semplice programmino in delphi che non fa altro che ricavare una serie di dati da un server remoto.

banalmente:
accendo il programma, si connette al db remoto dove da una tabellina si scarica dei dati e poi ci fa delle operazioni e li memorizza in locale.
domani riaccendo il programma, e "si accorge" che sul quella tabellina sul server remoto ci sono dei nuovi dati, che deve scaricare (non quelli vecchi), ci fa della operazioni e le memorizza in locale.

io pensavo:
sul server remoto(pensado di prendere una vps da netsons per esempio) ci installo mysql, il programma si connette al db, scarica da questa tabelle le nuove righe, elaboro i dati e me li salvo in un altro db mysql locale,semplicissimo no?.

i problem:
1) Ma come mi collego ad un db mysql remoto? considerando che questo software deve poi girare su puo' computer.
2) installare mysql su ogni macchina locale non so se è possibile, e cmq mi pare forse "esagerato", non c'e' una sorta di database locale senza dover fare installazione?, pensavo a firebird ma non so se è possibile senza installazione, o cmq una installazione "silente".

Prob sono cose stupide o magari aggirabili in qualche modo ma... mi son proprio bloccato.

ah. giusto per completezza e magari portarmi avanti, una volta fatte queste azioni, il programma dovrebbe uploadare su questo server in una cartella dedicata ad ogni pc dei file, pensavo a questo punto di montare un ftp, pero' non posso neppure creare un utente ftp per ogni macchina, suggerimenti?

grazie di tutto.

17 Risposte

  • Re: Connessione database remoto..e upload file.

    yaren ha scritto:


    1) Ma come mi collego ad un db mysql remoto? considerando che questo software deve poi girare su puo' computer.
    2) installare mysql su ogni macchina locale non so se è possibile, e cmq mi pare forse "esagerato", non c'e' una sorta di database locale senza dover fare installazione?, pensavo a firebird ma non so se è possibile senza installazione, o cmq una installazione "silente".

    Prob sono cose stupide o magari aggirabili in qualche modo ma... mi son proprio bloccato.

    ah. giusto per completezza e magari portarmi avanti, una volta fatte queste azioni, il programma dovrebbe uploadare su questo server in una cartella dedicata ad ogni pc dei file, pensavo a questo punto di montare un ftp, pero' non posso neppure creare un utente ftp per ogni macchina, suggerimenti?

    grazie di tutto.
    1) Credo che nessun amministratore di rete ti permetta di esporre un Server MySQL direttamente sul web, dunque per far questo hai bisogno di un server REST questo è open source e abbastanza semplice da utilizzare.

    2) Puoi usare SQLite è leggero e se non hai bisgno di molte pretese va benissimo, anche FB va bene basta usare la versione embedded e non c'e' niente da installare basta qualche dll nella stessa cartella dell'eseguibile.

    3) (FTP), delphi ha componenti ftp e credo ti basti un utente poi in base all'utente ci pensa il programma ad indirizzarti nella cartella esatta.

    Il giro potrebbe essere:
    Il programma fa login al Server REST il quale risponde mandando indietro le credenziali dell'utente, con le credenziali si chiede al Server REST se ci sono dati da elaborare per l'utente in caso di risposta positiva si chiedono i dati al Server REST, in base alle credenziali dell'utente collegato vengono spediti via FTP i file nella cartella dell'utente sul server.
  • Re: Connessione database remoto..e upload file.

    Ti ringrazio tantissimo, sei stat gentilissio.
    Provo subito a dare un occhio a MARS, sperando di capirci qualcosa
  • Re: Connessione database remoto..e upload file.

    La versione breve è: è difficilissimo.
    Il meccanismo di sincronizzazione che vuoi operare è un classico antipattern, talvolta obbligato, richiede mesi e mesi e talvolta anni per la messa a punto.

    Se hai la possibilità di operare sul server, allora la scelta migliore è un tunnel SSH per la porta 3306, così da far collegare i singoli client direttamente al server in tempo reale (bisogna progettare bene il db per non avere rallentamenti importanti)

    2) nessuno ti vieta di installare un mysql (o meglio un mariadb) per ogni client, addirittura in modalità portabile
  • Re: Connessione database remoto..e upload file.

    Alcuni servizi di hosting permettono anche la connessione remota al database.
    Esempio:

    Hosting di siti web economico con specifiche premium e dominio gratuito
    "https://www.hostinger.it/cheapest-website-hostin"

    Ma non è il solo...
  • Re: Connessione database remoto..e upload file.

    yaren ha scritto:


    banalmente:
    accendo il programma, si connette al db remoto dove da una tabellina si scarica dei dati e poi ci fa delle operazioni e li memorizza in locale.
    domani riaccendo il programma, e "si accorge" che sul quella tabellina sul server remoto ci sono dei nuovi dati, che deve scaricare (non quelli vecchi), ci fa della operazioni e le memorizza in locale.

    +m2+ ha scritto:


    La versione breve è: è difficilissimo.
    Il meccanismo di sincronizzazione che vuoi operare è un classico antipattern, talvolta obbligato, richiede mesi e mesi e talvolta anni per la messa a punto.
    Non mi sembra ci sia sincronizzazione dei dati, ma solo uno "scarico" di record, da come è stato scritto la mia interpretazione è stata:
    Ci sono n record da mandare all'utente X ? se si allora una volta mandati questi record vengono segnati come "inviati" e il giorno dopo la procedura si ripete. Nel caso in cui si debbano tenere sincronizzate alcune tabelle dal server al client allora il server REST credo sia un bel bagno di sangue, in questo caso tunnel SSH in modo da dialogare direttamente con il server potrebbe essere la scelta migliore.

    PS: Con Delphi potresti dare uno sguardo alla tecnologia "DataSnap" e vedere se fa al caso tuo.
  • Re: Connessione database remoto..e upload file.

    Niente sincronizzazione, o meglio è esattamente come ha detto wolfen, diciamo unilaterale.
    Ho provato a guardare MARS ma.. a parte che ci ho capito poco, cmq quel poco che ho capito è che comunque dovrei sviluppare un qualcosa anche da mettere sul server, giusto?.

    2) se mariadb si puo' installare in modo silente, tanto meglio, ma il "peso" di un db diciamo classico, per memorizzare alla fine pochi dati, mi sembrava anche esagerato, è vero che magari col tempo potrebbe riempirsi un po ma non credo tantissimo.


    tunnel ssh: ma a livello di sicurezza come è?... dovrebbe cmq essere sempre e comunque aperto?

    p.s. cercando qua e la mi sono anche imbattuto in:
    google cloud datastore e
    "https://www.tmssoftware.com/site/cloudpack.as"

    pero'.... ci ho capito ancora meno che mars... a parte che si tratterebbe di un datastore nosql.certo l'idea che ' google mi attira, pero' se poi non riesco ad usarlo.. mai usato un nosql.
  • Re: Connessione database remoto..e upload file.

    gibra ha scritto:


    Alcuni servizi di hosting permettono anche la connessione remota al database.
    Esempio:

    Hosting di siti web economico con specifiche premium e dominio gratuito
    "https://www.hostinger.it/cheapest-website-hostin"

    Ma non è il solo...

    questo invece?. loro fanno permettere di accedere direttamente a mysql?.. quindi cmq si tratta di aprire la porta 3306, giusto?.. questa cosa pero' a livello di sicurezza com'e'?.
  • Re: Connessione database remoto..e upload file.

    Discorso database remoto credo di aver risolto... ho visto che su google c'e' proprio mysql cloud... si connette con ssl, ho provato coi componenti firedac e funziona .

    ora sto cercando di capire come e cosa poter utilizzare come db locale, non posso installare nulla.
    ho scaricato mariadb ma a parte che sono circa 150mega di zip, poi non capisco come potermi connettere da delphi.

    qualcuno ha qualche dritta da darmi?..anche altri db (non so... postgre, firebird, o altro di leggero)
  • Re: Connessione database remoto..e upload file.

    Se non puoi installare niente, allora la soluzione più ovvia (se usi Windows) resta sempre il buon vecchio database di Access, che in locale funziona più che egregiamente ed il provider JET OleDb 4.0 è già installato in tutte le versioni di Windows dalla XP (forse anche dalla 2000) in poi, incluso Windows 10 (e lo sarà anche nelle versioni future).

    N.B. Non usare il db Access versione 2007 (*.ACCDB) o superiori perché richiede l'installazione di un driver apposito.
    Usa invece il formato 2002-2003 (.MDB) e non dovrai installare nulla.
  • Re: Connessione database remoto..e upload file.

    Cavoli access volevo proprio evitarlo... lo odio
    stavo guardando firebird, ho scaricato la 2.5 embedded... provato a connettermi con componenti dbexpress ma proprio non ne vuole sapere.
    ho messo tutti i dll nella stessa cartella dell'eseguibile ma niente.. pare che manchi qualcosa.

    come dll mi trovo:
    fbembed
    ib_util
    icudt30
    icuin30
    icuuc30
    msvcp80
    msvcr80

    a parte che.. come lo creo un db vuoto?.
  • Re: Connessione database remoto..e upload file.

    yaren ha scritto:


    2) se mariadb si puo' installare in modo silente, tanto meglio, ma il "peso" di un db diciamo classico, per memorizzare alla fine pochi dati, mi sembrava anche esagerato, è vero che magari col tempo potrebbe riempirsi un po ma non credo tantissimo.
    Non silente portabile.Ma cos'è per te "peso"? Saranno una 20ina di MB
    tunnel ssh: ma a livello di sicurezza come è?...
    Ottimo
    dovrebbe cmq essere sempre e comunque aperto?
    Aperto prima della connessione di mysql
  • Re: Connessione database remoto..e upload file.

    PS delphi & access... no no
  • Re: Connessione database remoto..e upload file.

    Se fosse una 20ina di mega andrebbe benissimo, pero' non riesco a trovarlo, ho trovato solo mysql portable, ma sono piu di 150 mega.
  • Re: Connessione database remoto..e upload file.

    yaren ha scritto:


    Cavoli access volevo proprio evitarlo... lo odio
    Fai come credi.
    in azienda abbiamo più o meno la tua stessa esigenza, e funziona alla grande.
    Gli utenti si sincronizzano da remoto (via Citrix) con i dati del SQL Server aziendale.

    +m2+ ha scritto:


    PS delphi & access... no no
    Perché? Delphi non è in grado di gestire un db access

    Comunque, checché se ne dica, mi risulta l'unico database che non richiede ALCUNA INSTALLAZIONE.
Devi accedere o registrarti per scrivere nel forum
17 risposte