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

Richard Chirgwin rchirgwin at ozemail.com.au
Wed Apr 6 03:33:38 EDT 2011


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 at 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 at ozemail.com.au>    wrote:
>>>> On 6/04/11 4:36 PM, grass-user-request at lists.osgeo.org wrote:
>>>>> Message: 9
>>>>> Date: Wed, 6 Apr 2011 16:06:13 +0930
>>>>> From: Sharon M<morrisxs09 at gmail.com>
>>>>> Subject: [GRASS-user] help with v.db.update
>>>>> To:grass-user at lists.osgeo.org
>>>>> Message-ID:<BANLkTi=oHUEGstNAuinLiYAMfo5-P3RBFA at 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
>>>>
>>>>
>>
>>




More information about the grass-user mailing list