[GRASSLIST:3625] Re: Disconnecting db in 5.7
Craig Aumann
caumann at ualberta.ca
Tue Jun 8 10:26:59 EDT 2004
Thanks, Radim! This clears things up for me.
And yes, the output below should have been "l1ashpcut" and not my
work-around "l1ashp2cut".
Cheers!
Craig
On Tue, 2004-06-08 at 06:40, Radim Blazek wrote:
> On Monday 07 June 2004 22:50, Craig Aumann wrote:
> > A few days ago, I ran an overlay command and then linked the output up
> > to an attribute table:
> >
> > v.overlay ainput=l1ashp atype=area binput=curregion btype=area
> > output=l1ashp2cut operator=and
>
> It was output=l1ashpcut, I presume?
>
> > v.db.connect -o map=l1ashpcut table=l1aatt key=LINK_KEY \
> > driver=pg database="dbname=jogis,user=caumann"
> >
> >
> > Today, I tried to re-run things and got the following error:
> >
> > GRASS 5.7.-cvs:~/grass57/netdown/jogis/caumann/vector > v.overlay
> > ainput=l1ashp atype=area binput=curregion btype=area output=l1ashpcut \
> >
> > > operator=and
> >
> > ---------------------------------------------------------------------------
> >-- Writing attributes ...
> > DBMI-DBF driver error:
> > Table l1ashpcut already exists
> > Error in db_execute_immediate()
> >
> > ERROR: Cannot create table: create table l1ashpcut (cat integer, cata
> > integer, catb integer)
> >
> > --------------
> >
> > No matter what I do, I can't make this error go away. I suspect I
> > should have done something to disconnect the db before I re-ran this.
> >
> > What am I not understanding/not doing right?
>
> v.db.connect must be used with attention and understanding what it does.
> In general it creates/deletes links to tables, but doe not create/drop/copy
> the table.
>
> v.overlay created a new table 'l1ashpcut' linked to field 1,
> then you relinked the field 1 (v.db.connect -o map=l1ashpcut table=l1aatt),
> to the table 'l1aatt', the table 'l1ashpcut' however remains in the database.
> When you run 'v.overlay output=l1ashpcut' second time, it first deletes
> old existing vector 'l1ashpcut' and all its tables (in this case only
> the table 'l1aatt', which you linked by v.db.connect).
> The table 'l1ashpcut' was not deleted because the link to this table
> was overwritten by 'v.db.connect -o' so the vector 'l1ashpcut' knows
> nothing about that table.
>
> You have to run something like
> echo 'drop table l1ashpcut' | db.execute
> for example, to delete the table.
>
> Radim
>
>
>
>
More information about the grass-user
mailing list