gyagi
13-07-2009, 20:12
Ho creato un programma per la "gestione" di un database riguardante delle anagrafiche.
Mi si è posto il problema di dare la possibilità agli utilizzatori di fare un dump del database(e fino a qui tutto ok) e caricare il dump in un altro pc.
praticamente ci sono + pc che usano lo stesso programma,ma che hanno database separati(ad esempio,un pc è posto in una sala e un altro pc è quello di casa dell'utilizzatore,ovviamente NON collegati in alcun modo).
usando la shellexecute o una procedura che ho chiamato runnprocess(scovata su internet,che praticamente lancia un eseguibile,con relativi parametri ed eventualmente fa aspettare il programma in delphi fino a che nn sia terminata l'operazione) non riesco a fare li load dei dati.
la riga che viene eseguita:
dataModule1.RunProcess('C:\Programmi\MySQL\MySQL Server 5.1\bin\mysqld.exe',' -u USER -pUSERPASSWORD DATABASE < '+nome_file,SW_SHOWNA, true);
(prima di questa istruzione cancello e ricreo il db con un drop e un create)
cercando su internet ho capito che il problema è il '<'.solo che non so proprio come venirne fuori.Leggevo di una soluzione che sfrutti il cmd.exe come "intermediario" solo che non ho trovato alcun esempio..e non so assolutamente come risovlere sta cosa.
Devo trovare un modo di dar la possibilità di fare il load dei dati.L'utente è abbastanza a digiuno di programmazione.Già accendere il PC e usare windows è una gran cosa..
EDIT:il programma non è a scopo di lucro,ne compito x le vacanze..E' un programma che ho dato in uso a degli amici senza nessun scopo di profitto..
Mi si è posto il problema di dare la possibilità agli utilizzatori di fare un dump del database(e fino a qui tutto ok) e caricare il dump in un altro pc.
praticamente ci sono + pc che usano lo stesso programma,ma che hanno database separati(ad esempio,un pc è posto in una sala e un altro pc è quello di casa dell'utilizzatore,ovviamente NON collegati in alcun modo).
usando la shellexecute o una procedura che ho chiamato runnprocess(scovata su internet,che praticamente lancia un eseguibile,con relativi parametri ed eventualmente fa aspettare il programma in delphi fino a che nn sia terminata l'operazione) non riesco a fare li load dei dati.
la riga che viene eseguita:
dataModule1.RunProcess('C:\Programmi\MySQL\MySQL Server 5.1\bin\mysqld.exe',' -u USER -pUSERPASSWORD DATABASE < '+nome_file,SW_SHOWNA, true);
(prima di questa istruzione cancello e ricreo il db con un drop e un create)
cercando su internet ho capito che il problema è il '<'.solo che non so proprio come venirne fuori.Leggevo di una soluzione che sfrutti il cmd.exe come "intermediario" solo che non ho trovato alcun esempio..e non so assolutamente come risovlere sta cosa.
Devo trovare un modo di dar la possibilità di fare il load dei dati.L'utente è abbastanza a digiuno di programmazione.Già accendere il PC e usare windows è una gran cosa..
EDIT:il programma non è a scopo di lucro,ne compito x le vacanze..E' un programma che ho dato in uso a degli amici senza nessun scopo di profitto..