Ciao, in Spatialite ver 4.1 sto cercando di aggiungere dei record da una tabella, con numero di campi diversi, in un'altra tabella. Entrambe con geom registrate e regolarmente funzionanti(MULTIPOINT Z, 4326,XYZ). la sintassi che uso è questa: insert into cassette (strno, NOTE, anno, geom) select strno, NOTE, anno, geom from daaggiungere where COD_SOSTEG not null l'errore è questo SQL error: no such table: main.strno Dove sbaglio? grazie L _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 808 iscritti al 07/03/2017 |
On Fri, 17 Mar 2017 13:39:51 +0000, Luca Moiana wrote:
> Ciao, > > in Spatialite ver 4.1 sto cercando di aggiungere dei record da una > tabella, con numero di campi diversi, in un'altra tabella. Entrambe > con geom registrate e regolarmente funzionanti(MULTIPOINT Z, > 4326,XYZ). > > la sintassi che uso è questa: > > insert into cassette (strno, NOTE, anno, geom) > select strno, NOTE, anno, geom > from daaggiungere > where COD_SOSTEG not null > > l'errore è questo > > SQL error: no such table: main.strno > > Dove sbaglio? > ciao Luca, servirebbe Maga Maghella con la sua sfera di cristallo per indovinare l'arcano disponendo di cosi' scarne informazioni. (anche se e' comunque abbastanza chiaro che nel tuo DB non c'e' nessuna tavola o colonna di nome "strno", cosi' come riporta il messaggio di errore). forse anche un esperto di SQL privo di magici poteri divinatori potrebbe esprimere un qualche parere utile, ma gli servirebbe quanto meno conoscere come sono state definite le due tavole "cassette" e "daaggiungere". se non hai tenuto traccia degli statements CREATE TABLE puoi comunque recuperare queste informazioni in questo modo: PRAGMA table_info(cassette); PRAGMA table_info(daaggiungere); ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 808 iscritti al 07/03/2017 |
Ciao Sandro,
grazie MILLE dell'analisi e dei consigli. Utilizzo spatialite gui 1.17.1 su windows 7 enterprise 64bit aziendale, dove non ho diritti di amministrazione. La tabella cassette è stata importata da GUI La tabella daaggiungere da xls tramite spatialite GUI Anche per le query utilizzo la GUI ________________________________ From: [hidden email] <[hidden email]> Sent: Friday, March 17, 2017 4:12 PM To: Luca Moiana Subject: Re: [Gfoss] Spatialite INSERT INTO errore On Fri, 17 Mar 2017 15:24:56 +0000, Luca Moiana wrote: > Queste sono le informazioni che mi restituisce: > quindi le tue tavole sono state create suppergiu' cosi': CREATE TABLE cassette ( cassetteid INTEGER NOT NULL PRIMARY KEY, strno INTEGER, linea TEXT, sostegno TEXT, modello INTEGER, altezza NUMERIC, direzione TEXT, foro_mm NUMERIC, anno INTEGER DEFAULT (strftime('%Y','now','localtime')), NOTE TEXT, regione text); SELECT AddGeometryColumn('cassette', 'geom', 4326, 'POINT', 'XY'); CREATE TABLE daaggiungere ( PK_UID INTEGER NOT NULL PRIMARY KEY, AOT, COD_SOSTEG, COD_LINEA, Denom_line, Regione, PROVINCIA, COMUNE, N_sostegno, Tipo_soste, N_cassetta, Mod_casset, H_cassetta, Orientamen, Diam_foro, NOTE, anno, CENSIMENTO, verifica, col_18, strno text); SELECT AddGeometryColumn('daaggiungere', 'geom', 4326, 'POINT', 'XY'); nota: il fatto che praticamente tutte le colonne della tavola "daaggiungere" evitino di specificare un data-type e' decisamente anomalo e non rispetta i requisiti base della sintassi standard SQL; comunque SQLite e' dataless "by design" e se ne frega allegramente. insert into cassette (strno, NOTE, anno, geom) select strno, NOTE, anno, geom from daaggiungere where COD_SOSTEG not null; quando vado ad eseguire la tua query iniziale qua da me gira tutto perfettamente liscio senza errori. ed e' anche logico che sia cosi' visto che dopo tutte esiste una colonna denominata "strno" su entrambe le tavole. conclusione: il fatto che sulla tua installazione locale invece ritorni un messaggio: "SQL error: no such table: main.strno" non sembra essere giustificato. tiro ad indovinare alla cieca: per caso stai usando spatialite_gui ? e magari usi taglia&incolla per copiare le tue query SQL da una parte all'altra ? se e' cosi' tiene sempre presente che il taglia&incolla abbastanza spesso puo' "sporcare" il testo introducendo caratteracci strani (anche invisibili) che poi rendono sintatticamente invalido lo statement SQL. suppergiu' la stessa cosa potrebbe accadere se stai usando Python (o qualsiasi altro linguaggio di programmazione): non dare mai per scontato che le stringa di query giunga tale e quale a SQLite, si potrebbe sempre infilare nel mezzo il linguaggio oppure il data connector cambiando le carte in tavola senza che tu ne sia consapevole. insomma, non sarebbe male saperne di piu' su quale sistema operativo e quali strumenti stai usando. ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 808 iscritti al 07/03/2017 |
On Mon, 20 Mar 2017 09:13:07 +0000, Luca Moiana wrote:
> Utilizzo spatialite gui 1.17.1 su windows 7 enterprise 64bit > aziendale, dove non ho diritti di amministrazione. > La tabella cassette è stata importata da GUI > La tabella daaggiungere da xls tramite spatialite GUI > > Anche per le query utilizzo la GUI > Luca, a questo punto l'ipotesi piu' probabile e' che si tratti semplicemente di un pasticciotto causato dal copia-e-incolla (a volte capita, specialmente su Windows). puoi provare ad eseguire quella query evitando di usare cut&paste (cioe' scrivendo tutto "a mano"), dopo avere verificato scrupolosamente che la finestrella dove imposti la query SQL sia assolutamente vuota. in alternativa puoi sempre provare ad installare una versione piu' recente della GUI, p.es. questa qua: http://www.gaia-gis.it/gaia-sins/windows-bin-amd64-test/spatialite_gui-4.4.0-RC0-win-amd64.7z ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 808 iscritti al 07/03/2017 |
Ciao Sandro,
Grazie per la pazienza. Ho scaricato la nuova GUI, riscritto la query a mano ma mi ritorna lo stesso errore: "no such table: main.strno" a questo punto devo escogitare un workaround. ________________________________ From: [hidden email] <[hidden email]> Sent: Monday, March 20, 2017 12:05 PM To: Luca Moiana Cc: GFOSS.it Subject: Re: [Gfoss] Spatialite INSERT INTO errore On Mon, 20 Mar 2017 09:13:07 +0000, Luca Moiana wrote: > Utilizzo spatialite gui 1.17.1 su windows 7 enterprise 64bit > aziendale, dove non ho diritti di amministrazione. > La tabella cassette è stata importata da GUI > La tabella daaggiungere da xls tramite spatialite GUI > > Anche per le query utilizzo la GUI > Luca, a questo punto l'ipotesi piu' probabile e' che si tratti semplicemente di un pasticciotto causato dal copia-e-incolla (a volte capita, specialmente su Windows). puoi provare ad eseguire quella query evitando di usare cut&paste (cioe' scrivendo tutto "a mano"), dopo avere verificato scrupolosamente che la finestrella dove imposti la query SQL sia assolutamente vuota. in alternativa puoi sempre provare ad installare una versione piu' recente della GUI, p.es. questa qua: http://www.gaia-gis.it/gaia-sins/windows-bin-amd64-test/spatialite_gui-4.4.0-RC0-win-amd64.7z ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 808 iscritti al 07/03/2017 |
In reply to this post by a.furieri
Mistero risolto, nessun bug. Nella definizione della foreign key di cassette ho invertito tabella con campo creando un pasticcio non da poco, ha ragione spatialite, la tabella strno non esiste! Grazie per l'aiuto e per la pazienza. ________________________________ From: [hidden email] <[hidden email]> Sent: Monday, March 20, 2017 12:05 PM To: Luca Moiana Cc: GFOSS.it Subject: Re: [Gfoss] Spatialite INSERT INTO errore On Mon, 20 Mar 2017 09:13:07 +0000, Luca Moiana wrote: > Utilizzo spatialite gui 1.17.1 su windows 7 enterprise 64bit > aziendale, dove non ho diritti di amministrazione. > La tabella cassette è stata importata da GUI > La tabella daaggiungere da xls tramite spatialite GUI > > Anche per le query utilizzo la GUI > Luca, a questo punto l'ipotesi piu' probabile e' che si tratti semplicemente di un pasticciotto causato dal copia-e-incolla (a volte capita, specialmente su Windows). puoi provare ad eseguire quella query evitando di usare cut&paste (cioe' scrivendo tutto "a mano"), dopo avere verificato scrupolosamente che la finestrella dove imposti la query SQL sia assolutamente vuota. in alternativa puoi sempre provare ad installare una versione piu' recente della GUI, p.es. questa qua: http://www.gaia-gis.it/gaia-sins/windows-bin-amd64-test/spatialite_gui-4.4.0-RC0-win-amd64.7z ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 808 iscritti al 07/03/2017 |
Free forum by Nabble | Edit this page |