Italian Quale Database usare ?

marco.canta

Active Member
Licensed User
Longtime User
Ciao, sto realizzando una applicazione con B4J per registrare una serie di eventi che avvengono, per fornire poi il DB contenente la documentazione eventi. Il tutto funziona semplicemente in locale sul PC dove è installato il programma o al massimo copiando DB su altro PC.

Il mio dubbio è che tipo di database usare ?

Il vecchio programma che avevo fatto era in VB6 e usavo Access, ma ora mi sembra un po obsoleto come tipo di DB.

Cosa mi consigliate ?

Grazie Marco.
 

LucaMs

Expert
Licensed User
Longtime User
Ma se devi consegnare il DB, dovrebbero essere le persone alle quali lo consegni a chiederti il formato di dati, o no?

Comunque, se non è così, tanto vale che usi SQLite (che, tra l'altro, è un file di testo).
 

marco.canta

Active Member
Licensed User
Longtime User
Ciao Luca, il DB si trovera' in una cartella dedicata nel PC.
Chi usera il programma, non ha una richiesta particolare sul formato del DB, basta che sia importabile in Excel o consultabile senza programmi specifici.

Il DB deve contenere molti dati, registo mediamente 1000 eventi giorni per 365 giorni anno, quindi 365000 eventi anno.
 

valentino s

Active Member
Licensed User
Longtime User
Mai piu' ms access :) Se poi la gestione di tanti eventi significa avere un database pluriennale, valuterei il piu' stabile mysql o mariadb. Ma non ho mai fatto prove. Credo che il vantaggio sia nell'avere un server che gestisce il db esterno al software principale , invece di sqllite che probabilmente e' piu' lento che credio sia gestito internamente. Ma e' solo teoria, non ho fatto pratica di questi aspetti su b4j
 

marco.canta

Active Member
Licensed User
Longtime User
Ciao Valentino,
inizialmente avevo pensato anche io a mySql, ma chi installera' ed utilizzera' il programma sono persone molto poco pratiche di PC, quindi fargli installare e avviare un server mySql mi complica un po tutto.

SQLite, ache se piu' lento, sembra piu semplice nella gestione creazione file e posizionamento file DB.
 

LucaMs

Expert
Licensed User
Longtime User
Infatti, non essendo un DBMS vero e proprio, è quello più simile (si fa per dire) ad Access.
Le prestazioni sono molto buone, non avrai problemi. Come detto, alle persone fai installare SQLite Expert Personal ed hai risolto.
 

marco.canta

Active Member
Licensed User
Longtime User
Ho iniziato ad integrare SQLite nel programma eventi, non male ;). Grazie per il suggerimento.

Visto che ci sono altro problemino... la gestione della Data.
Il campo "Date" del SQLite prevede il formato YYYY-MM-dd ma a me farebbe piu comodo il formato GG-MM-AAAA, come fare ??
Si puo cambiare l'impostazione del DB SQLite o devo fare una conversione sia leggendo che scrivendo il valori ?

Grazie !
 

LucaMs

Expert
Licensed User
Longtime User
Guardi (notare il lei ma scherzoso :)), personalmente preferisco usare il formato anno mese giorno per questioni di ordinamento (ed è leggibile).
Probabilmente si dovrebbe usare un Long, ovvero quello restituito dalla funzione DateTime.DateParse di B4A (in effetti, l'ordinamento dovrebbe funzionare ugualmente).

Puoi anche sfruttare la proprietà:
upload_2016-1-15_3-4-26.png


DateTime.DateFormat("dd/MM/yyyy")
per la visualizzazione / immissione da parte dell'utente e poi reimpostare MM/dd/yyyy quando salvi nel DB.
 

marco.canta

Active Member
Licensed User
Longtime User
Aiuto ....
Il mio programma con il SQlite procede e cresce, ora pero mi si è creato un problema che non riesco a risolvere.
Se il database esiste, tutto ok, ma qualora non esistesse, come creare il file Database.db ?
So verificare se il file esiste o meno, so creare le table all'interno del file, ma non riesco a creare il file .DB

Grazie Marco
 

marco.canta

Active Member
Licensed User
Longtime User
Risolto :)

B4X:
        SQL1.InitializeSQLite(File.DirApp, "Eventi.db", True)

se non esiste il file lo crea ;)
 

marco.canta

Active Member
Licensed User
Longtime User
Sinceramente preferisco crearlo da programma pc e poi gestirlo tramite app.
L'idea di crearlo direttamente da app mi è venuta pensando alla circostanza in cui per errore cancellassero, rinominassero o spostasseo il file. Cosi che all'avvio del programma se il file non è presente , il programma se lo autogenera.

Se hai qualche suggerimento è ben accetto.

P.S. il File Databese è a disposizione del cliente per consultarlo o svilupparci statistiche.
 

LucaMs

Expert
Licensed User
Longtime User
Ops, pensavo parlassi di B4A (memoria corta e non avevo riletto dall'inizio).

Comunque, se cancellano il db per sbaglio, perdono anche i dati, quindi a che serve ricrearlo dall'interno dell'applicativo B4J?

Meglio prevedere dei backup.
 
Top