Re: UPDATE syntax problem

Поиск
Список
Период
Сортировка
От Medi Montaseri
Тема Re: UPDATE syntax problem
Дата
Msg-id 3DF4F021.8040501@intransa.com
обсуждение исходный текст
Ответ на UPDATE syntax problem  (MT <mt@open2web.com>)
Список pgsql-general
MT wrote:

> Hi,
>
>     }
>     else if (param["new_unitcnt"] != param["old_unitcnt"])
>     {
>         sql += "unitcnt = '" + param["new_unitcnt"] + "',";
>     }
>     else if (param["new_wprice"] != param["old_wprice"])
>     {
>         sql += "wprice = " + param["new_wprice"];
>     }
>
>     sql += "WHERE prodid = '" + param["prodid"] + "'";
>
>     int res = conn.Exec (sql.c_str()); //sql exec
>
> Now the problem occurs when a user only wants to update certain columns,
> which creates a syntax problem due to the comma (","). In other words
> you cannot end a multiple column UPDATE statement with a comma
> followed by:

Before you process the WHERE clause....you need to backtrack and delete any
dangling ','. I'm not sure how you'd do it in pure C++ but in perl you'd say

$SQL =~ s/,$//

ie remove the last comma....

You'll also run into this problem when constructing WHERE clause items
where you
have have a 'AND' or similar operators at the end....

> er the program will run.
>
> Thanks,
>
> Mark Tessier
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)





В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: table functions
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: 7.3 no longer using indexes for LIKE queries