[Gfoss] da character (99) a character (1) e conseguente problema in v.patch

Ciao a tutti/e

ho delle mappe che vorrei unire conservando le colonne
attributi (usando quindi "v.patch" settando “copy also the attribute
table”).
Ho delle mappe che hanno in attributo:
cat integer (20)

LITO_NEW character (99)

una delle mie mappe però presenta (non so per
quale motivo)
cat integer (20)
LITO_NEW character (1)

e di conseguenza
non posso lanciare "v.patch" settando “copy also the attribute table”.

decido quindi:
(1) di lanciare "v.db.addcol" e creare una colonna
LITO_NEW_ varchar (99)
(2) con "v.db.update" copio gli attributi di
LITO_NEW in LITO_NEW_
(3) "g.gui gui=wxpython" -> carico in GRASS la
mappa -> tasto dx -> propietà -> gestione delle tabelle -> seleziona
LITO_NEW -> tasto dx -> cancella la colonna selezionata...
vedo che la
mia LITO_NEW_ character (99) mi diventa LITO_NEW_ character (1)

[l'idea era quella di creare nuovamente una LITO_NEW character (99),
con "v.db.update" copiare nuovamente gli attributi ed elminare
LITO_NEW_, non so se mi sono spiegato...]

che cosa non ho considerato
nelle mie operazioni??
cosa posso fare??

grazie mille!!
marco

Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale più di uno spot in TV.Per ogni nuovo abbonato 30 € di premio per te e per lui! Un amico al mese e parli e navighisempre gratis: http://freelosophy.tiscali.it/

Ciao Marco,

2012/5/9 marco.donnini@tiscali.it <marco.donnini@tiscali.it>:

Ciao a tutti/e

ho delle mappe che vorrei unire conservando le colonne
attributi (usando quindi "v.patch" settando “copy also the attribute
table”).

Quale versione di GRASS su quale OS usi?

Ho delle mappe che hanno in attributo:
cat integer (20)
LITO_NEW character (99)

che dice

v.db.connect -p la_tua_mappa
?

una delle mie mappe però presenta (non so per
quale motivo)
cat integer (20)
LITO_NEW character (1)

v.info -h questa_mappa

ti dice come è stata creata (per capire il 1 byte length).

e di conseguenza
non posso lanciare "v.patch" settando “copy also the attribute table”.

decido quindi:
(1) di lanciare "v.db.addcol" e creare una colonna
LITO_NEW_ varchar (99)
(2) con "v.db.update" copio gli attributi di
LITO_NEW in LITO_NEW_
(3) "g.gui gui=wxpython" -> carico in GRASS la
mappa -> tasto dx -> propietà -> gestione delle tabelle -> seleziona
LITO_NEW -> tasto dx -> cancella la colonna selezionata...
vedo che la
mia LITO_NEW_ character (99) mi diventa LITO_NEW_ character (1)

[l'idea era quella di creare nuovamente una LITO_NEW character (99),
con "v.db.update" copiare nuovamente gli attributi ed elminare
LITO_NEW_, non so se mi sono spiegato...]

Spiegato benissimo... non dovrebbe ridurre su 1 byte. Mi puzza di SQLite
driver?

che cosa non ho considerato
nelle mie operazioni??
cosa posso fare??

... darci le risposte sulle domande di sopra.
Poi speriamo di avere una risposta.

ciao
Markus

On 10:52 Wed 09 May , marco.donnini@tiscali.it wrote:

Ho delle mappe che hanno in attributo:
cat integer (20)

LITO_NEW character (99)

una delle mie mappe però presenta (non so per
quale motivo)
cat integer (20)
LITO_NEW character (1)

decido quindi:
(1) di lanciare "v.db.addcol" e creare una colonna
LITO_NEW_ varchar (99)
(2) con "v.db.update" copio gli attributi di
LITO_NEW in LITO_NEW_
(3) "g.gui gui=wxpython" -> carico in GRASS la
mappa -> tasto dx -> propietà -> gestione delle tabelle -> seleziona
LITO_NEW -> tasto dx -> cancella la colonna selezionata...
vedo che la
mia LITO_NEW_ character (99) mi diventa LITO_NEW_ character (1)

[l'idea era quella di creare nuovamente una LITO_NEW character (99),
con "v.db.update" copiare nuovamente gli attributi ed elminare
LITO_NEW_, non so se mi sono spiegato...]

Hai provato a usare db.execute?
db.execute input=modificatab.sql driver=sqlite

#######################
# file modificatab.sql

ALTER TABLE Geo_Svizzera_etc ADD COLUMN LITO_NEW_ varchar(99);

UPDATE Geo_Svizzera_etc SET LITO_NEW_ = LITO_NEW ;

##################
controlli se è tutto a posto ed elimini la colonna con db.dropcol

Ciao,
  Marco