Re: [Gfoss] stored procedure e messaggio finale NULL

2021-06-11 Per discussione Totò Fiandaca
Grazie mille per la rapida risposta.
Quindi non mi preoccupo.

Nuovamente grazie,
ma le stored procedure sono solo in spatialite o anche in sqlite?

saluti


Il giorno ven 11 giu 2021 alle ore 15:54  ha scritto:

> On Fri, 11 Jun 2021 15:40:18 +0200, Totò Fiandaca wrote:
> > Buonasera a tuttə,
> > ho studiato le stored procedure di spatialite 5 [0] e ho un problema
> > che
> > non riesco a risolvere da solo.
> >
> > Lavoro con spatialite_gui 2.1.0 beta1 con spatialite 5.0.0 e sqlite
> > 3.33.0
> >
> > Ho creato un mio database usando la gui e importato una sola tabella
> > (vettore MultiLineString 32632),
> > su questa tabella faccio una serie di query, circa 53, tutte a
> > cascata.
> >
> > Ho usato le stored procedure, ovvero ho sostituito al posto del nome
> > della
> > tabella (es:pippo) la variabile @toto@ e ho salvato l'intero script
> > SQL in
> > un file, es: my_script_sql.sql
> >
> > da spatialite_gui lancio la seguente query:
> >
> > SELECT SqlProc_SetLogfile(
> > 'C:\Users\pigre\Desktop\db_prova_route\logfile.txt', 1);
> > SELECT
> > SqlProc_Execute(SqlProc_FromFile('D:\Gitlab\civ_x_of\
> > my_script_sql.sql
> > '),'@toto@=pippo');
> >
> > tutto procede bene, ma alla fine ottengo:
> >
> > SqlProc_Execute(SqlProc_FromFile('D:\Gitlab\civ_x_of\
> > my_script_sql.sql
> > '),'@toto@=pippo')
> > 
> > NULL
> >
> > ma ottengo l'output corretto, cosa significa questo NULL? devo
> > preoccuparmi?
> >
>
> Toto',
>
> almeno in teoria quando uno sviluppatore decide di perdere
> qualche giornata per tenere aggiornata la documentazione
> tecnica lo fa proprio con l'intenzione di chiarire dubbi
> come questo :-D
>
> http://www.gaia-gis.it/gaia-sins/spatialite-sql-5.0.1.html
>
> ecco cosa dice per la funzione SqlProc_Execute()
>
> "On success will return the Return Value defined
> (explicitly or implicitly) by SqlProc_Return()."
>
> a sua volta la SqlProc_Return() riporta:
>
> "Any SQL Body terminating without explicitly
> calling SqlProc_Return() or StoredProc_Return()
> will always behave as if SqlProc_Return(NULL)
> was implicitly called."
>
> conclusione: nel tuo SQL script non viene mai
> chiamata nessuna SqlProc_Return(); e di conseguenza
> esce con il valore impostato by default che e' NULL
>
> insomma, e' tutto assulutamente regolare, fa
> esattamente quel che ci si aspetta che faccia. :-D
>
> ciao Sandro
> ___
> Gfoss@lists.gfoss.it
> 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.
> 764 iscritti al 23/08/2019



-- 
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *pigrecoinfin...@gmail.com *
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*membro QGIS Italia - http://qgis.it/ *
*socio GFOSS.it - *http://gfoss.it/
*blog:*
* https://pigrecoinfinito.com/  FB: Co-admin
- https://www.facebook.com/qgis.it/ **
 *
*TW:  **https://twitter.com/totofiandaca
*

43°51'0.54"N  10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.
___
Gfoss@lists.gfoss.it
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.
764 iscritti al 23/08/2019

Re: [Gfoss] stored procedure e messaggio finale NULL

2021-06-11 Per discussione a . furieri

On Fri, 11 Jun 2021 15:40:18 +0200, Totò Fiandaca wrote:

Buonasera a tuttə,
ho studiato le stored procedure di spatialite 5 [0] e ho un problema 
che

non riesco a risolvere da solo.

Lavoro con spatialite_gui 2.1.0 beta1 con spatialite 5.0.0 e sqlite 
3.33.0


Ho creato un mio database usando la gui e importato una sola tabella
(vettore MultiLineString 32632),
su questa tabella faccio una serie di query, circa 53, tutte a 
cascata.


Ho usato le stored procedure, ovvero ho sostituito al posto del nome 
della
tabella (es:pippo) la variabile @toto@ e ho salvato l'intero script 
SQL in

un file, es: my_script_sql.sql

da spatialite_gui lancio la seguente query:

SELECT SqlProc_SetLogfile(
'C:\Users\pigre\Desktop\db_prova_route\logfile.txt', 1);
SELECT
SqlProc_Execute(SqlProc_FromFile('D:\Gitlab\civ_x_of\ 
my_script_sql.sql

'),'@toto@=pippo');

tutto procede bene, ma alla fine ottengo:

SqlProc_Execute(SqlProc_FromFile('D:\Gitlab\civ_x_of\ 
my_script_sql.sql

'),'@toto@=pippo')

NULL

ma ottengo l'output corretto, cosa significa questo NULL? devo 
preoccuparmi?




Toto',

almeno in teoria quando uno sviluppatore decide di perdere
qualche giornata per tenere aggiornata la documentazione
tecnica lo fa proprio con l'intenzione di chiarire dubbi
come questo :-D

http://www.gaia-gis.it/gaia-sins/spatialite-sql-5.0.1.html

ecco cosa dice per la funzione SqlProc_Execute()

"On success will return the Return Value defined
(explicitly or implicitly) by SqlProc_Return()."

a sua volta la SqlProc_Return() riporta:

"Any SQL Body terminating without explicitly
calling SqlProc_Return() or StoredProc_Return()
will always behave as if SqlProc_Return(NULL)
was implicitly called."

conclusione: nel tuo SQL script non viene mai
chiamata nessuna SqlProc_Return(); e di conseguenza
esce con il valore impostato by default che e' NULL

insomma, e' tutto assulutamente regolare, fa
esattamente quel che ci si aspetta che faccia. :-D

ciao Sandro
___
Gfoss@lists.gfoss.it
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.
764 iscritti al 23/08/2019

[Gfoss] stored procedure e messaggio finale NULL

2021-06-11 Per discussione Totò Fiandaca
Buonasera a tuttə,
ho studiato le stored procedure di spatialite 5 [0] e ho un problema che
non riesco a risolvere da solo.

Lavoro con spatialite_gui 2.1.0 beta1 con spatialite 5.0.0 e sqlite 3.33.0

Ho creato un mio database usando la gui e importato una sola tabella
(vettore MultiLineString 32632),
su questa tabella faccio una serie di query, circa 53, tutte a cascata.

Ho usato le stored procedure, ovvero ho sostituito al posto del nome della
tabella (es:pippo) la variabile @toto@ e ho salvato l'intero script SQL in
un file, es: my_script_sql.sql

da spatialite_gui lancio la seguente query:

SELECT SqlProc_SetLogfile(
'C:\Users\pigre\Desktop\db_prova_route\logfile.txt', 1);
SELECT
SqlProc_Execute(SqlProc_FromFile('D:\Gitlab\civ_x_of\ my_script_sql.sql
'),'@toto@=pippo');

tutto procede bene, ma alla fine ottengo:

SqlProc_Execute(SqlProc_FromFile('D:\Gitlab\civ_x_of\ my_script_sql.sql
'),'@toto@=pippo')

NULL

ma ottengo l'output corretto, cosa significa questo NULL? devo preoccuparmi?

allego il logfile.txt


[0] https://www.gaia-gis.it/fossil/libspatialite/wiki?name=Stored+Procedures


-- 
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *pigrecoinfin...@gmail.com *
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*membro QGIS Italia - http://qgis.it/ *
*socio GFOSS.it - *http://gfoss.it/
*blog:*
* https://pigrecoinfinito.com/  FB: Co-admin
- https://www.facebook.com/qgis.it/ **
 *
*TW:  **https://twitter.com/totofiandaca
*

43°51'0.54"N  10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.
--=
--== SQL session end   =   2021-06-11 13:10:49   =   53 statements were 
executed
--=


--=
--== SQL session start   =   2021-06-11 13:13:44
--=
DROP TABLE IF EXISTS "nodes";
--=== -- Execution time: 0.000

CREATE TABLE nodes (pk INTEGER PRIMARY KEY,id INTEGER, tipo TEXT);
--=== -- Execution time: 0.015

SELECT AddGeometryColumn('nodes', 'geom', 32632, 'POINT', 'XY');
-- 
-- AddGeometryColumn('nodes', 'geom', 32632, 'POINT', 'XY')
-- 
-- 0
--=== 1 row === -- Execution time: 0.016

INSERT INTO nodes (pk,id,tipo, geom)
SELECT null,id,'S' AS tipo, ST_StartPoint(geom) AS geom FROM ebw_route_202103 
UNION ALL
SELECT null,id,'E' AS tipo,ST_EndPoint(geom) AS geom FROM ebw_route_202103;
--=== -- Execution time: 0.812

SELECT CreateSpatialIndex('nodes','geom');
-- --
-- CreateSpatialIndex('nodes','geom')
-- --
-- 0
--=== 1 row === -- Execution time: 0.000

DROP TABLE IF EXISTS "T";
--=== -- Execution time: 0.016

CREATE TABLE T AS
SELECT id, CastToMultiPoint(geom) AS geom
FROM nodes
WHERE geom IN (
SELECT zz.geom
FROM nodes zz, ebw_route_202103 a
WHERE zz.id != a.id -- linee diverse
AND round (ST_Distance (zz.geom, a.geom),4)  = 0.0
AND a.pk_uid IN (
SELECT rowid
FROM SpatialIndex
WHERE f_table_name = 'ebw_route_202103'
   AND search_frame = BuildCircleMbr(ST_X(zz.geom), ST_Y(zz.geom), 1))
GROUP BY zz.geom HAVING count(zz.geom) = 1);
--=== -- Execution time: 22.955

SELECT RecoverGeometryColumn('T','geom',32632,'MULTIPOINT','XY');
-- -
-- RecoverGeometryColumn('T','geom',32632,'MULTIPOINT','XY')
-- -
-- 1
--=== 1 row === -- Execution time: 0.125

DROP TABLE IF EXISTS "route_T";
--=== -- Execution time: 0.000

CREATE TABLE route_T AS
SELECT a.id as id, CastToMultiLineString(a.geom) AS geom
FROM T zz, ebw_route_202103 a
WHERE zz.id != a.id -- linee diverse
AND round (ST_Distance (zz.geom, a.geom),4)  = 0.0
AND a.pk_uid IN (
SELECT rowid
FROM SpatialIndex
WHERE f_table_name = 'ebw_route_202103'
   AND search_frame = BuildCircleMbr(ST_X(zz.geom), ST_Y(zz.geom), 1))
GROUP BY zz.geom HAVING count(zz.geom) = 1;
--=== -- Execution