Subject | BDE to IBO Conversion Issue Resolved |
---|---|
Author | Jason Wharton |
Post date | 2002-06-06T16:41:41Z |
Just a notice to all those who have or are planning to convert a BDE based
application to IBO. An issue which raised up in the past and recently again
is how IBO was processing the posting of an insert. IBO by default was
putting together an INSERT statement which included all columns in it. So,
if a column had NULL value it was still being passed to the server that way.
What the BDE did was create a customized INSERT statement leaving out
columns that were NULL. This would allow an server defined DEFAULT to be
applied. It also relied upon this for the Required property value of TField
such that it would set Required false if there was a default defined on the
server. This would allow the column to have NULL and wouldn't raise an
exception when posting.
I have now made TIBODataset (TIBOQuery and TIBOTable) behave exactly as the
BDE did so that when converting everything will work as it did before.
Native IBO apps will be unchanged and if this option is preferable to you,
is all you have to do is set the PreparedInserts property to false and then
native IBO will behave just the same as the BDE did.
I also found out that using GetServerDefaults will not work for all cases of
default values. Just a beware. If you have it using USER or some other
command that the server interprets a certain way instead of taking it as a
literal value, IBO is going to have a problem with that.
Regards,
Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com
application to IBO. An issue which raised up in the past and recently again
is how IBO was processing the posting of an insert. IBO by default was
putting together an INSERT statement which included all columns in it. So,
if a column had NULL value it was still being passed to the server that way.
What the BDE did was create a customized INSERT statement leaving out
columns that were NULL. This would allow an server defined DEFAULT to be
applied. It also relied upon this for the Required property value of TField
such that it would set Required false if there was a default defined on the
server. This would allow the column to have NULL and wouldn't raise an
exception when posting.
I have now made TIBODataset (TIBOQuery and TIBOTable) behave exactly as the
BDE did so that when converting everything will work as it did before.
Native IBO apps will be unchanged and if this option is preferable to you,
is all you have to do is set the PreparedInserts property to false and then
native IBO will behave just the same as the BDE did.
I also found out that using GetServerDefaults will not work for all cases of
default values. Just a beware. If you have it using USER or some other
command that the server interprets a certain way instead of taking it as a
literal value, IBO is going to have a problem with that.
Regards,
Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com