Newsgroup: it.comp.lang.vo-clipper
Titolo: [SQL]AIUTO

Bentornati dalle ferie "x chi ci è andato".
This is the problem:
Devo prelevare degli archivi da un programma che gira su sql per traformarli
in dbf. Non so nemmeno da dove cominciare: qualcuno può darmi qualche
dritta? Esiste per caso qualche utility che lo fa?
Grazie a tutti.
Francesco

 ha scritto nel messaggio
news:xO%c9.55318$pX1.1...@news2.tin.it...

Se non hai problemi di velocità puoi accedervi via ODBC.....
Dopo aver configurato l'ODBC, utilizzo il seguente codice che non sarà
perfetto ma funziona su server ORACLE per scaricare in un DBF i dati che mi
servono:
 LOCAL oConn AS SQLConnection
 LOCAL cStringa AS STRING
// Stabilisce la connessione
 oConn := SQLGetMyConnection(cMySourceName, cMyUserID, cMyPassword)
// stringa con l'istruzione SQL
 cStringa := "SELECT * FROM TPrezzo where cvm = 'IT0001273363'"
 oCust:= SQLSelect{cStringa, oConn}
poi lo usi come un server normale.
I guru di VO e SQL saranno già sotto il tavolo a ridere ;-)))
Spero ti sia utile.
Luca


No no !!!   io non sono un guru di VO ne tantomeno di Sql ma le istruzioni
che usi tu (sqlselect ecc...) le uso anche io e la loro semplicità e
disarmante !!!
Io mi sto studiando adesso il mondo Sql (MySql) integrato in VO e ogni
giorno trovo delle cose eccezionali !!!
Tra breve scriverò degli articoli su questo, per DEV i quali credo che
usciranno da Dicembre in poi
Ciao
Enio Donci

 Luca
Beh, l'importante è che funzioni, no? :c)
Non ho problemi di velocità, anche perchè gli archivi non sono poi molto
voluminosi. Forse avrò qualche problemino con odbc, visto che non l'ho mai
usato, ma credo di farcela  :c)
Mi chiedevo: cMyUserID, cMyPassword sono sicuramente quelli che utilizza il
cliente per accedere al programma (spero), ma cMySourceName è una stringa
riferita a cosa?
Intanto mi preparo un "sorgentino" atto allo scopo. Vorrei provarlo con un
server MySql provvisorio installato su una mia macchina, tanto per
collaudarlo.
Grazie 1000!!!
Francesco

 collaudarlo.
Se devi fare il lavoro "una-tantum" e se il server è MySql, basta fare una
select appropriata per creare un file ascii sul disco pronto per essere
importato come DBF.
Se non ricordo male, nel manuale di MySql c'è un esempio che fa proprio
questo.
Ciao.
Davide.

 poi lo usi come un server normale.
La risposta è corretta, però se devi fare una cosa una tantum puoi usare la
sintassi:
SELECT select_expression INTO OUTFILE 'file_name' export_options
    [FROM table_references
        [WHERE where_definition]
        [GROUP BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]
        [HAVING where_definition]
        [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...]
Es. [Select * from clienti into outfile c:/temp/pippo.txt FIELDS TERMINATED
BY "]+CHR(KEYTAB)+[" OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY
"]+CHR(13)+CHR(10)+[" ORDER BY RAGIONE_SOC]
genera un file txt che puoi portare in DBF, caricare con Excel etc.
ricorda le / al posto delle \ per alcuni motori è importante.
sempre a disposizione, non esistono guru, ma solo persone che per
convinzioni personali  usano altri strumenti e sono ben lieti di essere
utili.
Danilo Giuliani
www.softdevo.com
in...@softdevo.com
sup...@softdevo.com

 Davide.
In effetti è una tantum. Non ne sono ancora certo, ma credo che il server
sia sql e non mysql, me ne accerterò presto.
Grazie di tutto.
Francesco


Grazie Danilo, credo sia la cosa migliore crearmi un tracciato record.
Ti pensavo quando ho provato il programma del cliente da cui devo prelevare
gli archivi. Ha un programma che gira su sql, ma è di una lentezza
esasperante. Pensa che lavorando sul server con archivi di circa 200 record
impiegava fino a 30 secondi per darmi un report semplice tipo tabella
clienti. Strano, no?
Ciao. Francesco

 clienti. Strano, no?
Credo che possa dipendere dagli indici del DB SQL.... a me è capitato e
cambiando la query o modificando gli indici andava a posto
Luca

 "]+CHR(13)+CHR(10)+[" ORDER BY RAGIONE_SOC]
Credo che una query del genere sia specifica per un particolare motore
(MySql?) e difficilmente girerà su altri motori. Io ritengo che, per
quanto possibile, sia meglio tenersi sul generale in previsione di un
cambiamento futuro di motore (o di versione dello stesso motore?). La
moltitudine di dialetti di SQL (il linguaggio) esistenti è una vera
maledizione...
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

clienti. Strano, no?
Si molto, ma sai si possono anche scrivere query non corrette.


 Enio Donci