[GRASSLIST:9405] Re: DBMI errors after QGIS+GRASS crash

Dylan Beaudette dylan.beaudette at gmail.com
Fri Dec 9 20:02:02 EST 2005


On Friday 02 December 2005 11:24 am, Dylan Beaudette wrote:
> Greetings.
>
> I was editing a GRASS vector layer in QGIS, specifically the attribute
> table- which stored in MySQL. Everything was working fine, until I tried to
> access the same vector layer in the GRASS shell. An error was returned
> regarding something about the header missing some this vector, and QGIS
> suddenly quit. Afterwards, any time i try and access the attributes for
> this vector via GRASS I get:
> echo "select * from merged_dupes" | db.select
> dbmi: Protocol error
>
> ...despite the fact that all of the data is still in MySQL, and the table
> checks out OK. I have re-issued the db.connect, and v.db.connect commands
> in hopes that that would fix the connection.
>
> Also- now when i try and start QGIS from within this mapset and load the
> trouble vector layer, QGIS quits with a "dbmi ERROR".
>
> I have tried replacing my mapset with a known working copy, but that
> refuses to work as well. Trying to copy the trouble vector results in a
> DBMI error as well.
>
> Any ideas??

Replying to my own message...

After some testing, a pattern seems to be emerging.

1. vector_a + table_a in MySQL  ----> QGIS crashes when loading vector_a

2. vector_a + (no table) ----> QGIS loads vector_a without issue

3. vector_a + table_b in MySQL   ----> QGIS loads vector_a without issue

4. vector_b + table_a in MySQL  ---->QGIS crashes when loading vector_a

somehow anything connected to table_a in MySQL causes QGIS to crash when 
loading the vector connected to this table. In addition, a vector connected 
with a 'problem' table in QGIS will break certain GRASS vector commands that 
work on the attribute table- Dying with a 'DBMI cursor' error.

Here is an example error reported by GRASS, when trying to use g.copy with a 
vector connected to a 'problem' table stored in MySQL:

#connecting vector to the 'problem' table:
v.db.connect -o map=gradgroup_spring05 driver=mysql 
database="host=localhost,dbname=test" table=gradgroup_spring05 key=cat

#trying to copy the vector:
COPY [gradgroup_spring05 at PERMANENT] to current mapset as [fff]
dbmi: Protocol error
WARNING: Cannot open select cursor: 'select * from gradgroup_spring05'


Also: the tables in MySQL (both working and 'problem' ones) appear to be fine. 
There are no telling messages in the mysql.log either.

Thoughts ? 

-- 
Dylan Beaudette
Soils and Biogeochemistry Graduate Group
University of California at Davis
530.754.7341




More information about the grass-user mailing list