Subject | Re: [firebird-support] IS NULL and query parameters |
---|---|
Author | Carlos Guzmán Álvarez |
Post date | 2004-07-28T14:50:19Z |
Hello:
and deletes commands in the FbCommandBuilder class in the same
way as other data providers does (like the oracle and
the sql server one).
A sample (named parameters are replaced with a ?
in the .net provider):
UPDATE
OrderDetails
SET
OrderID = @p1 ,
ProductID = @p2 ,
UnitPrice = @p3 ,
Quantity = @p4 ,
Discount = @p5
WHERE (
(OrderID = @p6) AND
(ProductID = @p7) AND
((UnitPrice IS NULL AND @p8 IS NULL) OR (UnitPrice = @p9)) AND
((Quantity IS NULL AND @p10 IS NULL) OR (Quantity = @p11)) AND
((Discount IS NULL AND @p12 IS NULL) OR (Discount = @p13))
)
There are other cases, a .net provider user (he has sent
an email about this, this week, to the .net provider list)
is trying to add firebird support to an or mapper that now supports sql
server and oracle and that generates commands in the same
way (i don't know how he is going to solve this for firebird)
I haven't reviewed it in deep yet but this can be
needed too for the .net provider when the .net 2.0 gets
released if i want (and i want :) if possible) to take
advantage of the new DbCommandBuilder base class that
does the generation that way too.
And finally i'm curious about what that isn't allowed :)
--
Best regards
Carlos Guzmán Álvarez
Vigo-Spain
>Why would you try to do this? Null isn't a value.Huummm ... in the case of the .net provider to generate updates
>
>What's wrong with
>
>WHERE aValue = ? OR aValue IS NULL
>
and deletes commands in the FbCommandBuilder class in the same
way as other data providers does (like the oracle and
the sql server one).
A sample (named parameters are replaced with a ?
in the .net provider):
UPDATE
OrderDetails
SET
OrderID = @p1 ,
ProductID = @p2 ,
UnitPrice = @p3 ,
Quantity = @p4 ,
Discount = @p5
WHERE (
(OrderID = @p6) AND
(ProductID = @p7) AND
((UnitPrice IS NULL AND @p8 IS NULL) OR (UnitPrice = @p9)) AND
((Quantity IS NULL AND @p10 IS NULL) OR (Quantity = @p11)) AND
((Discount IS NULL AND @p12 IS NULL) OR (Discount = @p13))
)
There are other cases, a .net provider user (he has sent
an email about this, this week, to the .net provider list)
is trying to add firebird support to an or mapper that now supports sql
server and oracle and that generates commands in the same
way (i don't know how he is going to solve this for firebird)
I haven't reviewed it in deep yet but this can be
needed too for the .net provider when the .net 2.0 gets
released if i want (and i want :) if possible) to take
advantage of the new DbCommandBuilder base class that
does the generation that way too.
And finally i'm curious about what that isn't allowed :)
--
Best regards
Carlos Guzmán Álvarez
Vigo-Spain