Pagina 1 di 1

Gestire un database da riga di comando

Inviato: venerdì 3 ottobre 2008, 21:03
da fiamma
Qualche d'uno può consigliarmi un semplice database da gestire da riga di comando, senza dover scrivere password o cose simili?
Mi servirebbe per uno script che cataloga film.

So che ci sono Mysql e PostrgreSQL ma mi sembrano un po difficilotti.
Openoffice-base sembra si possa utilizzare solo dal lato grafica.

Grazie

Re: Gestire un database da riga di comando

Inviato: venerdì 3 ottobre 2008, 21:17
da spina696
Adesso non saprei dirti per i linguaggi di scripting,ma cmq la sintassi delle query mysql o postgresql non è difficilissima...dopo un po si impara e la si usa benissimo.. ;)

Re: Gestire un database da riga di comando

Inviato: venerdì 3 ottobre 2008, 21:39
da fiamma
Però o letto che richiede password e configuraizoni varie.
Mi servirebbe un database privo di queste cose perchè lo script che sto scrivendo dovrebbe essere usato anche da terzi (su altri Pc) .

Il fatto che di database non ci capisco una "h", non li ho mai usati.

Re: Gestire un database da riga di comando

Inviato: venerdì 3 ottobre 2008, 21:46
da Berghem
guarda sqlite

Re: Gestire un database da riga di comando

Inviato: venerdì 3 ottobre 2008, 22:09
da jc54
Ma con Mysql puoi anche gestire un database senza impostare passw. Certo la cosa non è molto sicura, ma se se metti i privilegi dell'utente solo in lettura non possono fare casini. Diversa la cosa se devono aver accesso completo al db.
Saluti

JC54

Re: Gestire un database da riga di comando

Inviato: sabato 4 ottobre 2008, 12:53
da paper0k
Quoto
Berghem ha scritto: guarda sqlite
un esempio pratico è qui ;)

Re: Gestire un database da riga di comando

Inviato: sabato 4 ottobre 2008, 16:48
da fiamma
Ok sto provando con sqlite...ma ecco il problema.

Da riga di comando ho creato il database e la tabella con i rispettivi campi:

sqlite3 data_archivio.db
SQLite version 3.4.2
Enter ".help" for instructions
sqlite> create table Films (
  ...> Id integer,
  ...> Titolo char(80),
  ...> Regia_A char(40),
  ...> Regia_B char(40),
  ...> Autore_A char(40),
  ...> Autore_B char(40),
  ...> Genere char(40),
  ...> Data varchar(40),
  ...> Durata varchar(10),
  ...> Nazione char(40),
  ...> Voto_IMDb varchar(40)
  ...>  );

Poi dentro uno script bash ho scritto il comando per inserire i dati nel database come nell'esempio del link che ha postato paperOK:

sqlite3 data_archivio.db "insert into Films (Id,Titolo,Regia_A,Autore_A,Genere,Data,Durata,Nazione,Voto_IMDb) values ('$titolo','$regista','$autore','$genere','$data','$durata','$nazione','$imdb');
....ma dentro al database non viene scritto niente.

Re: Gestire un database da riga di comando

Inviato: sabato 4 ottobre 2008, 17:28
da fiamma
Forse lo sbaglio è nel typeness. Al posto di char dovrei mettere TEXT.

Re: Gestire un database da riga di comando

Inviato: domenica 5 ottobre 2008, 2:37
da fiamma
L'errore è che sqlite non importa il carattere apostrofo ' .  >:(
Come risolvo?  ::)

Re: Gestire un database da riga di comando

Inviato: domenica 5 ottobre 2008, 10:02
da paper0k

Codice: Seleziona tutto

\'
? ;)

Re: Gestire un database da riga di comando

Inviato: domenica 5 ottobre 2008, 12:13
da fiamma
paper0k ha scritto:

Codice: Seleziona tutto

\'
? ;)
Però i dati vengono passati come variabile.

Re: Gestire un database da riga di comando

Inviato: domenica 5 ottobre 2008, 12:34
da fiamma
Per aggirare il problema bisogna aggiungere un'altro apostrofo ' .
Quindi se il titolo di un film sarà L'arco diventerà l''arco.

Ma come faccio se i dati li passo come variabile?

Esiste un modo con sed per raddoppiare questo carattere?

Re: Gestire un database da riga di comando

Inviato: domenica 5 ottobre 2008, 12:38
da fiamma
Trovato

sed -i s/\'/\'\'/g

Re: Gestire un database da riga di comando

Inviato: lunedì 6 ottobre 2008, 12:30
da garak
Benvenuto nel mondo dei db.  :)
Quello che stai cercando di fare si chiama "escaping" e non può essere limitato ai soli apici, perlomeno se vuoi fare un'applicazione sicura. Dovresti preoccuparti anche dei puntievirgola, dei commenti e in generale di tutto ciò che potrebbe provocare una sql injection.

Re: Gestire un database da riga di comando

Inviato: lunedì 6 ottobre 2008, 21:32
da fiamma
garak ha scritto: Benvenuto nel mondo dei db.  :)
Quello che stai cercando di fare si chiama "escaping" e non può essere limitato ai soli apici, perlomeno se vuoi fare un'applicazione sicura. Dovresti preoccuparti anche dei puntievirgola, dei commenti e in generale di tutto ciò che potrebbe provocare una sql injection.
Conosci un manuale in italiano per sqlite?

Re: Gestire un database da riga di comando

Inviato: mercoledì 8 ottobre 2008, 9:44
da garak