Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#13 concerning OMNIS (RainingData)

open
Edward Benson
None
5
2004-02-24
2004-02-24
Bert Verhees
No

Hi,

I am using this dbxpress driver for middleware
purposes, and I have to connect to several databases of
different vendors.

I found an irregularity in connecting to OMNIS via
their own ODBC-driver(http://www.rainingdata.com), en
also to DataFlex.

For Omnis I patched the problem myself, I send you the
diffs, so you can see for yourself.

Please send me a note if you are doing something with
this. Later this week or next, I'll send you a fix for
the DataFlex-problem which is that the calling
application has to be in the same directory as the
database-config-file is, because, the path-names to the
data-files are relative.
Here I am using the odbc-driver from Flexquarters.
This is unacceptable, so I'll fix this in a week or so,
that the dbxpress driver changes currentdir to the
wanted dir just before doing a call, and changing back
afterwards, so that the application will not notice.

You can contact me on bert-.-verhees-@-rosa-.nl
(please remove dashes)

DbxOpenOdbc.pas
------------------
4846a4849,4852
> else if (StrLComp(PAnsiChar(uDbmsName), 'DATAFLEX',
8)=0) then //DataFlex
> fDbmsType := eDbmsTypeDataFlex
> else if (StrLComp(PAnsiChar(uDbmsName), 'OMNIS',
5)=0) then //OMNIS
> fDbmsType := eDbmsTypeOmnis

8988c8994,9004
< Integer(Value^) := ((365 * 1900) + 94) +
Trunc( EncodeDate(Year, Month, Day) );
---
> if
fOwnerDbxConnection.DbmsType=eDbmsTypeOmnis then begin
> //exception toegevoegd vanwege OMNIS (buggy
implementatie van metadata?)
> try
> Integer(Value^) := ((365 * 1900) + 94) +
Trunc( EncodeDate(Year, Month, Day) );
> except
> Integer(Value^) := 0;
> IsBlank := True;
> end;
> end else
> //---oorspronkelijke code
> Integer(Value^) := ((365 * 1900) + 94) +
Trunc( EncodeDate(Year, Month, Day) );
9230a9247,9249
> //if statement toegevoegd vanwege OMNIS (buggy
implementatie van metadata?)
> if
(fOwnerDbxConnection.DbmsType=eDbmsTypeOmnis) then
> if
Year+Month+Day+Hour+Minute+Second+Fraction=0 then
IsBlank:=True;

DbxOpenOdbcInterface.pas
--------------------------
74c74,75
< eDbmsTypeFlashFiler, eDbmsTypePostgreSQL,
eDbmsTypeInterSystemCache
---
> eDbmsTypeFlashFiler, eDbmsTypePostgreSQL,
eDbmsTypeInterSystemCache,
> eDbmsTypeDataFlex,eDbmsTypeOmnis

DbxObjectParser.pas
---------------------
230c230,232
< nil //eDbmsTypeInterSystemCache
---
> nil, //eDbmsTypeInterSystemCache
> nil, //eDbmsTypeDataFlex
> nil //eDbmsTypeOmnis

Discussion

  • Bert Verhees
    Bert Verhees
    2004-02-24

    • assigned_to: nobody --> edwardbenson