BUG - possible UPDATE bug in multi-record?
| От | Keith Gray |
|---|---|
| Тема | BUG - possible UPDATE bug in multi-record? |
| Дата | |
| Msg-id | 3BCE28F9.7AFBBF39@heart.com.au обсуждение исходный текст |
| Список | pgsql-odbc |
Using this style of command through an SQL tool it
decrements each row in the list by 1 cent.
UPDATE GeneralLedger
SET CBalPer0 = CBalPer0 + (-0.01),
PBalPer0 = PBalPer0 + (-0.01)
WHERE AccountSequence IN (56,54,3,2)
(I only use the brackets to handle sign of amount
as in next example)
Trying to execute it through ODBC...
Amount = -0.01
AccountSequence = "(56,54,3,2)"
SQL= "UPDATE GeneralLedger " & _
"SET CBalPer0 = CBalPer0 + (" & Amount & "), " & _
"PBalPer0 = PBalPer0 + (" & Amount & ") " & _
"WHERE AccountSequence IN " & AccountSequenceList
myConnection.Execute(SQL)
...causes movements in other accounts and incorrect balances!
I am trying with 2 separate UPDATE statements...
SQL= "UPDATE GeneralLedger " & _
"SET CBalPer0 = CBalPer0 + (" & Amount & "), " & _
"WHERE AccountSequence IN " & AccountSequenceList
myConnection.Execute(SQL)
SQL= "UPDATE GeneralLedger " & _
"SET PBalPer0 = PBalPer0 + (" & Amount & ") " & _
"WHERE AccountSequence IN " & AccountSequenceList
myConnection.Execute(SQL)
...and yes this does work.
--
Keith Gray
Technical Development Manager
Heart Consulting Services P/L
mailto:keith@heart.com.au
В списке pgsql-odbc по дате отправления: