spina ha scritto:quindi alcune note:
- probabilmente i valori vanno quotati nella query sql;
- il formato della data va modificato se il campo del database è di tipo 'date';
- l'id del cliente lo devi prelevare attraverso una query che però dipende dal DBMS su cui stai lavorando. Ad esempio, MySQL mette a disposizione il metodo LASTE_INSERT_ID() che dovresti eseguire dopo la insert in 'clienti';
.....
Comunque io ritorno dire che te ne fai poco di queste cose se ti server un'istruzione sql per prelevare l'id del cliente appena inserito.
Emanuele
Su tua dritta mi sono visto la funzione LASTE_INSERT_ID()
ed ho modificato al volo il tuo script
Ho cambiato provvisoriamente solo l'output da produrre nelle printf così
Codice: Seleziona tutto
printf "insert into clienti values (null, '%s', '%s', 'telefono', null);\n",nome, cognome;
printf "insert into appuntamenti VALUES ( null , '20%s-%s-%s 00:00:00', 'descrizionecognomeesempio', LAST_INSERT_ID(), %s );\n", gma[3], gma[2], gma[1], info[3];
L'unico problema e che molte date non vanno perche nel file di origine, il campo NOTE,
al 75esimo carattere và a capo dividendo le date cosi...
Codice: Seleziona tutto
NOTE:16.11.10-2(4)\" 09.12.10-2(4)\" 30.12.10-2(4)\" 22.01.11-2(4)\" 12.02.
11-2(4)\" 05.03.11-2(4)\" 26.03.11-2(4)\" 23.04.11-2(4)\"\n
Ora provo a mettere il campo NOTE su una sola riga e collegare le stringe togliendo lo spazio della riga successiva
e poi provo ad estrapolare anche il campo telefono e passarlo ad una variabile per il campo cliente..
Conoscete qualche bella guida possibilmente in italiano per awk e sed così da poter provare a risolvere da solo?