[GRASS-user] help with v.db.update

Why does the DBF driver handle like when using v.db.select?

On Wed, Apr 6, 2011 at 4:29 PM, Richard Chirgwin
<rchirgwin@ozemail.com.au> wrote:

On 6/04/11 4:36 PM, grass-user-request@lists.osgeo.org wrote:

Message: 9
Date: Wed, 6 Apr 2011 16:06:13 +0930
From: Sharon M<morrisxs09@gmail.com>
Subject: [GRASS-user] help with v.db.update
To:grass-user@lists.osgeo.org
Message-ID:<BANLkTi=oHUEGstNAuinLiYAMfo5-P3RBFA@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

I'm trying to update an attribute table column using v.db.update with
the DBF driver and keep getting a dbmi: Protocol error message.

Example using Spearfish

g.copy vect=fields,myfields

v.db.addcol myfields col="polynum integer"

v.db.select myfields where="label like 'V%'"
cat|label|polynum
59|V. White#1|

v.db.update myfields col=polynum val=42 where="label like 'V%'"
dbmi: Protocol error
ERROR: Error while executing: 'UPDATE myfields SET polynum=42 WHERE
label like V%
'

I've tried this on both winGrass 6.4 rc2 or winGrass 6.5 r45847 on
winXP using the wxGUI via both the v.db.update module and the wxgui
command line and get the same error issue.

What am I doing wrong? Can anyone help please?

Thanks in advance!

The dbf driver doesn't handle "like". Try:

v.db.update myfields column=polynum val=42 where='cat=59'

and see what happens ...

If you need more advanced query parameters such as "like", use a different
database driver - pg or mysql.

Richard
If

"I don't know" is the short answer. Hamish's suggested worked here for v.db.update, but when I used "like" in v.db.update, it failed with the same error as you saw.

Perhaps a bug in the driver?

Richard

On 6/04/11 5:12 PM, Sharon M wrote:

Why does the DBF driver handle like when using v.db.select?

On Wed, Apr 6, 2011 at 4:29 PM, Richard Chirgwin
<rchirgwin@ozemail.com.au> wrote:

On 6/04/11 4:36 PM, grass-user-request@lists.osgeo.org wrote:

Message: 9
Date: Wed, 6 Apr 2011 16:06:13 +0930
From: Sharon M<morrisxs09@gmail.com>
Subject: [GRASS-user] help with v.db.update
To:grass-user@lists.osgeo.org
Message-ID:<BANLkTi=oHUEGstNAuinLiYAMfo5-P3RBFA@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

I'm trying to update an attribute table column using v.db.update with
the DBF driver and keep getting a dbmi: Protocol error message.

Example using Spearfish

g.copy vect=fields,myfields

v.db.addcol myfields col="polynum integer"

v.db.select myfields where="label like 'V%'"
cat|label|polynum
59|V. White#1|

v.db.update myfields col=polynum val=42 where="label like 'V%'"
dbmi: Protocol error
ERROR: Error while executing: 'UPDATE myfields SET polynum=42 WHERE
label like V%
'

I've tried this on both winGrass 6.4 rc2 or winGrass 6.5 r45847 on
winXP using the wxGUI via both the v.db.update module and the wxgui
command line and get the same error issue.

What am I doing wrong? Can anyone help please?

Thanks in advance!

The dbf driver doesn't handle "like". Try:

v.db.update myfields column=polynum val=42 where='cat=59'

and see what happens ...

If you need more advanced query parameters such as "like", use a different
database driver - pg or mysql.

Richard
If

Richard - are you working in a win XP environment? If so which vers of WinGrass?

Thanks,

Sharon

On Wed, Apr 6, 2011 at 4:48 PM, Richard Chirgwin
<rchirgwin@ozemail.com.au> wrote:

"I don't know" is the short answer. Hamish's suggested worked here for
v.db.update, but when I used "like" in v.db.update, it failed with the same
error as you saw.

Perhaps a bug in the driver?

Richard

On 6/04/11 5:12 PM, Sharon M wrote:

Why does the DBF driver handle like when using v.db.select?

On Wed, Apr 6, 2011 at 4:29 PM, Richard Chirgwin
<rchirgwin@ozemail.com.au> wrote:

On 6/04/11 4:36 PM, grass-user-request@lists.osgeo.org wrote:

Message: 9
Date: Wed, 6 Apr 2011 16:06:13 +0930
From: Sharon M<morrisxs09@gmail.com>
Subject: [GRASS-user] help with v.db.update
To:grass-user@lists.osgeo.org
Message-ID:<BANLkTi=oHUEGstNAuinLiYAMfo5-P3RBFA@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

I'm trying to update an attribute table column using v.db.update with
the DBF driver and keep getting a dbmi: Protocol error message.

Example using Spearfish

g.copy vect=fields,myfields

v.db.addcol myfields col="polynum integer"

v.db.select myfields where="label like 'V%'"
cat|label|polynum
59|V. White#1|

v.db.update myfields col=polynum val=42 where="label like 'V%'"
dbmi: Protocol error
ERROR: Error while executing: 'UPDATE myfields SET polynum=42 WHERE
label like V%
'

I've tried this on both winGrass 6.4 rc2 or winGrass 6.5 r45847 on
winXP using the wxGUI via both the v.db.update module and the wxgui
command line and get the same error issue.

What am I doing wrong? Can anyone help please?

Thanks in advance!

The dbf driver doesn't handle "like". Try:

v.db.update myfields column=polynum val=42 where='cat=59'

and see what happens ...

If you need more advanced query parameters such as "like", use a
different
database driver - pg or mysql.

Richard
If

No - Mac. So perhaps Win interprets the delimiters differently?

Richard

On 6/04/11 5:23 PM, Sharon M wrote:

Richard - are you working in a win XP environment? If so which vers of WinGrass?

Thanks,

Sharon

On Wed, Apr 6, 2011 at 4:48 PM, Richard Chirgwin
<rchirgwin@ozemail.com.au> wrote:

"I don't know" is the short answer. Hamish's suggested worked here for
v.db.update, but when I used "like" in v.db.update, it failed with the same
error as you saw.

Perhaps a bug in the driver?

Richard

On 6/04/11 5:12 PM, Sharon M wrote:

Why does the DBF driver handle like when using v.db.select?

On Wed, Apr 6, 2011 at 4:29 PM, Richard Chirgwin
<rchirgwin@ozemail.com.au> wrote:

On 6/04/11 4:36 PM, grass-user-request@lists.osgeo.org wrote:

Message: 9
Date: Wed, 6 Apr 2011 16:06:13 +0930
From: Sharon M<morrisxs09@gmail.com>
Subject: [GRASS-user] help with v.db.update
To:grass-user@lists.osgeo.org
Message-ID:<BANLkTi=oHUEGstNAuinLiYAMfo5-P3RBFA@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

I'm trying to update an attribute table column using v.db.update with
the DBF driver and keep getting a dbmi: Protocol error message.

Example using Spearfish

g.copy vect=fields,myfields

v.db.addcol myfields col="polynum integer"

v.db.select myfields where="label like 'V%'"
cat|label|polynum
59|V. White#1|

v.db.update myfields col=polynum val=42 where="label like 'V%'"
dbmi: Protocol error
ERROR: Error while executing: 'UPDATE myfields SET polynum=42 WHERE
label like V%
'

I've tried this on both winGrass 6.4 rc2 or winGrass 6.5 r45847 on
winXP using the wxGUI via both the v.db.update module and the wxgui
command line and get the same error issue.

What am I doing wrong? Can anyone help please?

Thanks in advance!

The dbf driver doesn't handle "like". Try:

v.db.update myfields column=polynum val=42 where='cat=59'

and see what happens ...

If you need more advanced query parameters such as "like", use a
different
database driver - pg or mysql.

Richard
If