Thread: Re: Latest ODBC driver? / lo (blob) problem with fieldtype in Delphi
Thanks for the reply's dave. I'll give them a try. About the blob/lo problem. I'm not sure if this problem is strictly a Delphi issue. It seems that in the backend for version8.0 (maybe a bit before that, I'm not sure), the implementation for the lo-datatype changed. Now it's a domain, beforeyou had to create your own type named lo to have a field capable of storing (Binary) Large OBjects. Somehow the fieldis now recognized in Delphi as an IntegerField, and no longer as a field for large objects. Just a thought of mine, but maybe the implementation in the backend changed, so the ODBC recognizes and passes the fieldas type integer, and no longer as a lo/blob field. Otherwise it's something in the implementation of the ODBC driver itself that passes the field type as something that delphiunderstands as integer, maybe the odbc really says it's an integerfield. I'll try the 08.02 and see what that does. Regards, Stijn. > > 3. The problems we are having are related to lo (BLOB) > fields. Maybe > > somebody can tell me if this is indeed related to the > version of the > > ODBC drivers. > > I'm using Delphi in combination with ADO as a development > enviroment. > > I make my databaseconnection using a TADOConnection > component. Next I > > use a TADODataSet where I perform my database operations. I > can't work > > with fields of the type LO because in delphi the fieldtype > needed for > > this is a TBlobField, but the real problem is that all lo > fields get > > recognized as a TIntegerField. This means that I can't use > any of the > > operations for working with BLOB's... I don't know if it > are Delphi's > > ADO components who incorrectly recognize the fieldtype, or the ODBC > > driver, or the backend. We have worked with Delphi, ODBC and BLOB > > fields before without problems. We started using the 08.01 branch > > along with the 8.x backend, since this one is the first one > available > > for Windows. It could be a change in the ODBC, or the > backend, I don't > > know. Any tips or clarification to put me on the right search path > > would be welcome. > > I never used BLOBs (or Delphi) so cannot help with that I'm afraid.
Stijn Vanroye wrote: > Thanks for the reply's dave. I'll give them a try. > > About the blob/lo problem. I'm not sure if this problem is strictly a Delphi issue. > It seems that in the backend for version 8.0 (maybe a bit before that, I'm not sure), > the implementation for the lo-datatype changed. Now it's a domain, before you had to > create your own type named lo to have a field capable of storing (Binary) Large OBjects. > Somehow the field is now recognized in Delphi as an IntegerField, and no longer as a field for large objects. > > Just a thought of mine, but maybe the implementation in the backend changed, so the ODBC > recognizes and passes the field as type integer, and no longer as a lo/blob field. > Otherwise it's something in the implementation of the ODBC driver itself that passes the > field type as something that delphi understands as integer, maybe the odbc really says it's an integerfield. > > I'll try the 08.02 and see what that does. Please check 7.4+ Protocol option when you try lo domain type. regards, Hiroshi Inoue
I have installed the 08.02.0002 snapshot after uninstalling the 08.01. It looks like the problem is now solved. Not only do the Delphi ADO components recognize my lo field as TBlobField, but it even works within a transaction (which is nice because we had some problems there in the past). I did check the 7.4+ protocol option, which was enabled. If anyone needs it or has a similar problem, I can post my connection settings (since they seem to work), just let me know. As I understood the 08.02 branch is going stable in the near future. So before going into production with this I'll be anctiously waiting for that to happen. Escpecially because Dave said the driver name will change before the release. Quote Dave Page: "Note that the driver name will probably change before release, but will be set in stone once the first 08.02 stable release is out." Thanks for the reply's. I'm a happy developper again, I can finally ditch the MSSQL Desktop backend ;) Regards, Stijn Vanroye. Hiroshi Inoue wrote: > Stijn Vanroye wrote: >> Thanks for the reply's dave. I'll give them a try. >> >> About the blob/lo problem. I'm not sure if this problem is strictly a >> Delphi issue. > > It seems that in the backend for version 8.0 (maybe a bit before > that, I'm not sure), > > the implementation for the lo-datatype changed. Now it's a domain, > before you had to > > create your own type named lo to have a field capable of storing > (Binary) Large OBjects. > > Somehow the field is now recognized in Delphi as an IntegerField, and > no longer as a field for large objects. >> >> Just a thought of mine, but maybe the implementation in the backend >> changed, so the ODBC > > recognizes and passes the field as type integer, and no longer as a > lo/blob field. >> Otherwise it's something in the implementation of the ODBC driver >> itself that passes the > > field type as something that delphi understands as integer, maybe the > odbc really says it's an integerfield. >> >> I'll try the 08.02 and see what that does. > > Please check 7.4+ Protocol option when you try lo domain type. > > regards, > Hiroshi Inoue > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings >
> -----Original Message----- > From: pgsql-odbc-owner@postgresql.org > [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Stijn Vanroye > Sent: 30 August 2006 10:00 > To: pgsql-odbc@postgresql.org > Subject: Re: [ODBC] Latest ODBC driver? / lo (blob) problem > with fieldtype > > As I understood the 08.02 branch is going stable in the near > future. So > before going into production with this I'll be anctiously waiting for > that to happen. Escpecially because Dave said the driver name will > change before the release. > Quote Dave Page: "Note that the driver name will probably > change before > release, but will be set in stone once the first 08.02 stable > release is > out." Currently it's "PostgreSQL" - it will be "PostgreSQL Unicode" or "PostgreSQL ANSI" depending on the build you use. The one you have is Unicode unless you've replaced the DLL with one of Hiroshi's ANSI builds. You can hack your registry to set that up now if you feel confident (and have taken backups etc etc :-) ) /D