Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: tornu - 19 Luglio 2008, 23:29:29

Titolo: Errore query
Inserito da: tornu - 19 Luglio 2008, 23:29:29
Buonasera a tutti,
non riesco a risolvere il seguente problema, inserendo questa funzione

Codice: [Seleziona]
SELECT campo1, campo2, campo3 INTO OUTFILE '/home/mioutente/projects_gambas2/data/file/prova.txt' FROM tabella_prova


Gambas restituisce questo errore

Query failed: Can't create/write to file '/home/mioutente/projects_gambas2/data/file/prova.txt' (Errcode:13)

Dalle ricerche che ho fatto, il problema dovrebbero essere i permessi della cartella 'file', ho controllato ma l'utente 'mioutente' i permessi su quella cartella c'è li ha tutti.

Uso MySQL e Ubuntu 8.04
Titolo: Re: Errore query
Inserito da: robertozr - 20 Luglio 2008, 10:14:28
ciao,prova con SHELL "chmod 777 /home/directory/file"
Titolo: Re: Errore query
Inserito da: tornu - 20 Luglio 2008, 20:36:41
Ho provato il tuo suggerimento ma non funziona, mi restituisce lo stesso errore.

Ho fatto un'altra prova, ho digitato la Select direttamente su MySQL ma mi restituisce l'identico errore, quindi posso escludere errori su Gambas, continuo a non capire...
Titolo: Re: Errore query
Inserito da: robertozr - 20 Luglio 2008, 20:50:41
ciao,strano uso mandriva spring mysql e funziona in gambas perfettamente
Titolo: Re: Errore query
Inserito da: tornu - 21 Luglio 2008, 22:23:46
Ho fatto un'altra prova ho provato la stessa query utilizzando MySQL da terminale, risultato: stesso errore.

Per correttezza riposto la query in quanto quella del post iniziale contiene un'errore di sintassi

Codice: [Seleziona]
SELECT campo1, campo2, campo3 INTO OUTFILE '/home/mioutente/projects_gambas2/data/file/prova.txt'
FIELDS TERMINATED BY ';'
FROM tabella_prova
Titolo: Re: Errore query
Inserito da: tornu - 28 Luglio 2008, 23:34:26
Ho provato il tutto anche da root, niente da fare, non ne vuole proprio sapere di scrivere il file.
Qualcuno mi sa dare qualche dritta per uscire da questo problema?
Titolo: Re: Errore query
Inserito da: md9327 - 30 Luglio 2008, 11:25:32
Prova mettere doppi slash:

SELECT campo1, campo2, campo3 INTO OUTFILE '//home//mioutente//projects_gambas2//data//file//prova.txt'
FIELDS TERMINATED BY ';'
FROM tabella_prova
Titolo: Re: Errore query
Inserito da: tornu - 30 Luglio 2008, 23:17:46
Niente da fare imperterrito continua a visualizzare lo stesso errore...e del file nessuna traccia.
Titolo: Re: Errore query
Inserito da: Mario - 31 Luglio 2008, 12:29:04
Uhm, sicuro che la clausola "FIELDS TERMINATED BY" vada in quella posizione, e non dopo "FROM file_di_input"?
Titolo: Re: Errore query
Inserito da: tornu - 31 Luglio 2008, 22:38:12
Ho controllato, la sintassi è quella riportata sul manuale MySQL.
Titolo: Re: Errore query
Inserito da: robertozr - 01 Agosto 2008, 07:49:09
buon giorno,ciao credo che sia un problema relativo al sistema operativo,non e'
che per caso usi ubunto ?
Prova se puoi con mandriva......... :-?  :-?
Titolo: Re: Errore query
Inserito da: tornu - 02 Agosto 2008, 20:46:46
Non credo dipenda dalla distribuzione, a questo punto dopo tutte le prove che ho fatto penso che il problema sia dato dall'utente che uso in MySQL, che è lo stesso che uso in Gambas per accedervi, qualche settaggio (permesso) che manca, anche se ancora non ho capito quale, per cui Ubuntu non permette la scrittura su quella cartella....la ricerca e le prove continuano.

Naturalmente è bene accetto qualsiasi consiglio.
Titolo: Re: Errore query
Inserito da: tornu - 18 Agosto 2008, 22:08:51
Mi sono arreso, dopo giorni di prove e ricerche di ogni tipo, non sono riuscito a trovare la soluzione, chiedo il vostro aiuto per trovare un'altra strada.
La mia esigenza è quella di selezionare dei dati da una tabella di MySQL e inserirli in un'altra tabella dello stesso DB, la prima idea che mi era venuta in mente era quella di appoggiare i dati su un file e successivamente rileggerli per inserirli nell'altra tabella, con poche righe di codice in Gambas avrei risolto in modo semplice ma purtroppo non sono riuscito come dimostrano i post di questa discussione,spero mi possiate dare qualche idea.
Titolo: Re: Errore query
Inserito da: leo72 - 18 Agosto 2008, 23:34:09
Leggendo un po' di documentazione di MySQL ho visto che l'utente deve avere i privilegi di scrittura su file se si vuole avere la possibilità di inviare output sui suddetti file. Hai dato i privilegi di accesso ai file al tuo utente?
http://dev.mysql.com/doc/refman/5.0/en/grant.html
Titolo: Re: Errore query
Inserito da: tornu - 19 Agosto 2008, 22:47:24
Sì leo, l'utente che uso in Gambas per accedere a MySQL a tutti i privilegi

Privilegi globali = ALL PRIVILEGES
Grant = Sì

l'unico dubbio che ho è che su MySQL c'è una sezione che si chiama
'Privilegi specifici al database' è attualmente il settaggio è 'Nessuno'
smanetto un po in questa sezione e se ci sono novità vi faccio sapere, nel mentre se hai altri suggerimenti...grazie
Titolo: Re: Errore query
Inserito da: md9327 - 22 Agosto 2008, 11:39:23
Perdona, ma se devi copiare dati tra due tabelle nello stesso db, non ti basta un semplice:

INSERT INTO ()
SELECT FROM

???
Titolo: Re: Errore query
Inserito da: tornu - 22 Agosto 2008, 23:32:14
Sì, hai perfettamente ragione, a volte si ha la soluzione a portata di mano e non la si vede.
Mi resta la curiosità del perchè SELECT....INTO OUTFILE non mi funziona.

Grazie molte per la 'dritta'.
Titolo: Re: Errore query
Inserito da: md9327 - 23 Agosto 2008, 18:49:33
Sicuramente, come hai scoperto tu stesso, è un problema di diritti di scrittura.

Dovresti scoprire quale utente tenta questa operazione (magari con il debug, o tramite sistema operativo), ed agire di conseguenza.
Titolo: Re: Errore query
Inserito da: leo72 - 03 Settembre 2008, 22:14:50
Questo è apparso oggi sulla mailing-list ufficiale:

Citazione
Hi,I fixed an important bug in the Sqlite3 Gambas driver in revision 1536. The  driver sometimes truncated the value of fields in query results.  This bug appears recently for the following reason:  There is a missing feature in the function that run SQL queries (sqlite3_exec)  in the sqlite3 library, that prevented me from implementing Blob support.   So I took the source code of this function and rewrote it for my needs.  And SQLite changed, and so the old code did not work, and so I had to update  it.  Of course, this situation is far from perfect, but I see no other solution at  the moment.   Maybe I should write to the SQLite author to ask him to add what I need in the  sqlite3_exec function.  Regards,


Provate a scaricare e compilare l'ultima SVN.
Titolo: Re: Errore query
Inserito da: tornu - 04 Settembre 2008, 20:53:46
Scusa leo, ma riguarda anche MySQL?
perchè il problema da me segnalato riguarda questo DB, dalla tua citazione se non ho tradotto male sembra riferirsi solo a SQlite.

Ciao
Titolo: Re: Errore query
Inserito da: md9327 - 05 Settembre 2008, 12:36:12
No, riguarda solo SQLite.

Avevo riscontarto immediatamente 'stà cosa e gliela avevo segnalata.

Invece di scaricarmi tutta la versione da svn, ho fatto la piccola correzione segnalata ai sorgenti della libreria gb.db.sqlite3, e ora funziona, anche se la modifica è più una tocca a un problema con le versioni di SQLite che altro.