Board index » delphi » BDE fails when accessing null date fields using Oracle 8.1.6 ODBC driver

BDE fails when accessing null date fields using Oracle 8.1.6 ODBC driver

BDE won't work with date fields containing null values using new Oracle
ODBC driver 8.6.1.
(This ODBC driver is installed when Oracle client is upgraded to 8.1.6)
In Delphi unit DBTables function TBDEDataSet.GetRecord, the statement
Status := DbiGetNextRecord(FHandle, dibNoLock, Buffer, @FRecProps);
returns a status of13059, General SQL error: []Oracle}{ODBC] Invalid
datetime format
when it attempts to read a record containing a date field when the date
field value is null.

Something unexpected is getting returned to BDE by null oracle date
fields using this odbc driver.
However, Delphi using  ODBC express instead of the BDE works fine with
null date values
using this oracle driver.
MS Access and Seagate Crystal Reports also handle null dates ok using
this odbc driver.

 

Re:BDE fails when accessing null date fields using Oracle 8.1.6 ODBC driver


"Evan Eastley" <eeast...@theplm.com> wrote

Quote
> Something unexpected is getting returned to BDE by null oracle date
> fields using this odbc driver.
> However, Delphi using  ODBC express instead of the BDE works fine with
> null date values
> using this oracle driver.
> MS Access and Seagate Crystal Reports also handle null dates ok using
> this odbc driver.

Why are you not using the native driver (ORACLE)? ODBC drivers for oracle
seem to have problems with Delphi.

-- Reddy.

Re:BDE fails when accessing null date fields using Oracle 8.1.6 ODBC driver


Good point.  Maybe you're right and we need to move to the native driver.
However, we've been using ODBC because the applications can use either an
Oracle or a SQL Server database.  We used ODBC so we could use ODBC
date-time escape clauses and minimize code variations.
Quote

>Why are you not using the native driver (ORACLE)? ODBC drivers for oracle
>seem to have problems with Delphi.

>-- Reddy.

Re:BDE fails when accessing null date fields using Oracle 8.1.6 ODBC driver


Quote
"E. Eastley" wrote:
> Good point.  Maybe you're right and we need to move to the native driver.

There are lots of problems with the Native drivers, especially if you're using
Blobs and  Clobs.  Just have a look at this newsgroup.  I would normally
recommend Direct Oracle Access, but that won't work in your situation.  ADO is
said to be good with SqlServer but glacial with Oracle.

John Pierce

Re:BDE fails when accessing null date fields using Oracle 8.1.6 ODBC driver


Thank you John Pierce for the recommnendation to use ADO.
I have had a lot of problems using  ODBC from Oracle but too with Intersolve.
I've downloaded ODA components friday. This evening I terminated a very
sophiticated program with it.
Absolutely no problems. A good compatilibity between Oracle TData Set and the
TTables from Delphi. And an astonished gain of performance.
Very easy to translate an app. Just the Oracle query is not similare (can't be
connected to DBcontrols). I try Quick report tomorrow (DBcontrols connected to
TTable and not TDataSOurce I think).

The null fields is a knowed problem of Oracle ODBC.
I don't understand how the people of Oracle do, to propose so a bugged ODBC
driver, and it is not their first try.
How they do for populating an excell sheet from a SQL request with null fields in
tables?
They have never tried ???
Jacques Marchal (be)

Re:BDE fails when accessing null date fields using Oracle 8.1.6 ODBC driver


Quote
jacques marchal wrote:

> The null fields is a knowed problem of Oracle ODBC.
> I don't understand how the people of Oracle do, to propose so a bugged ODBC
> driver, and it is not their first try.

To be fair, the problem is Microsoft's.  They have abandoned the ODBC interface in
favor of ADO, and have left some bugs unfixed.

Also, to clear things up, what I recommended is DOA (Direct Oracle Access), not ADO!

John Pierce

Re:BDE fails when accessing null date fields using Oracle 8.1.6 ODBC driver


I apologize. I was speaking about DOA from allRound.Automation
Quote
John Pierce wrote:

> Also, to clear things up, what I recommended is DOA (Direct Oracle Access), not ADO!

> John Pierce

Other Threads