delphi3000.com - the free delphi knowledge platform
delphi3000.com - the free delphi knowledge platform
494 Users Online NOW
Have a look at your member-status

connecting people's knowledge


  - Recent ArticlesRSS feed for Recent Articles on delphi3000.com
  - List of All Articles
  - Top Viewed Articles
  - Articles (+Attachem.)
  - Articles Of Interest
  - Categories
  - Top Uploader
  - Search
  - Index

  - My Home
  - Submit an Article
  - My Articles
  - My Personal Data
  - My Bookmarks
  - Activities
  - Login/Logout

  - Sign Up
  - Why Sign Up
  - Newsletter

  - Press
  - Advertise

  - Contact
  - Feedback





Community
Borland
ClubeDelphi
Dr. Bob
UK-BUG
Delphi Meetings
Planeta Delphi



Loremo - the 1.5 liter car coming in 2009




Startblatt.de






Share this article with friendsShare this article with friends
Rate this articleRate this article - to keep the quality of delphi3000.com !
Comment this article or read through previous comments (4)


FEEDBACK: D6+ADO+MS.SS => D6+ADO+Oracle Go to Hans Pieters's websiteFormat this article printer-friendly!Bookmark function is only available for registered users!
The results
Product:
Delphi all versions
Category:
Database-SQL
Skill Level:
Scoring:
Last Update:
02/13/2003
Search Keys:
delphi delphi3000 article borland vcl code-snippet ORACLE MIGRATION ADO
Times Scored:
3
Visits:
2396
Uploader: Hans Pieters
Company: IHP Software France
Reference: ridbase.com
 
Question/Problem/Abstract:
The results of a migration D6+ADO+MS.SS => D6+ADO+Oracle
Answer:



On my request for help concerning backend migration from MS SQL Server to Oracle (see article 3513: D6+ADO+MS.SS => D6+ADO+Oracle ????) I received just one reaction from Bob Dole. Bob told me 'If you've kept your design SQL-92 compliant, everything should work fine'.

I went to my client (7000 Km away!) expecting only some problems with date fields. However .....

Oracle before version 9i is not SQL-92 compliant at all. Oracle does not support the join syntax, but uses a funny notation with a plus sign in the WHERE condition. The Oracle guys did their job so mediocre, that they did not even enable the parser to adapt SQL-92 syntax to their own the funny notation.

In Oracle 9i the product has grown up a bit and joins are now SQL-92 compliant.

The second problem was, that Oracle - including Oracle 9i - does not know the integer datatype. Of course you can use number, but you can bet, that you will have situations where you have to change your source because the presence of a decimal point is a problem.

For the rest ( that is after convincing my client, that there Oracle 8 software should be upgraded to Oracle 9i and after changing all the integer fields into number fields (also in the MS SQL server database, because I want to maintain a single version ) my app did run smoothly on bothe backends.

However, if I get a new client who is not willing to switch to 9i I have to rewrite all my SQL-joins in that funny Oracle style (what idiot did invent this notation?) and have a switch for using the funny SQL Select when Oracle < 9i is the backend and the SQL 92 compliant Select otherwise.  

I hope this story helps people who plan to design software for MS SQL Server and Oracle using ADO.






Please rate this article!
Skill level:
BeginnerExpert

Useful:
No!Very!

Overall rating:
PoorExcellent



Comments to this article
Write a new comment
MS SQL, Oracle
    Steen Hemmingsen (Feb 13 2003 9:16PM)

Thank you for sharing this.

Respond

RE: MS SQL, Oracle
anonymus (Feb 24 2003 2:11AM)

That funny little notation that you are refering to is at first a little bit awkward I will have to admit but onece you get used to it it makes the SQL a heck easier to read. alot espeacialy when you have complex joins

i.e.
Select a.Field1 F1, b.field1 F2, c.Field1 F3 from
Table1 a, Table2 b, Table3 c
Where
  a.Field1 = b.Field1(+) and
  c.Field1 = a.Field1(+) and
  c.SomeOtherField <> b.SomeOtherField;
is whole lot easier to read than...
not even sure if I got it right...
Select a.Field1 F1, b.field1 F2, c.Field1 F3 from
Table1 a, Table2 b, Table3 c
Where
( (a inner join b on a.Field1 = b.field1) inner join c on c.Field1 = a.Field1) and c.SomeOtherField <> b.SomeOtherField;


  
Respond

RE: RE: MS SQL, Oracle
Hans Pieters (Feb 24 2003 7:27AM)

I do agree with you, but that is not the point. The compliancy counts.People should stop bringing out a own version of a standarized product. It is bad for it-consumers and developers alike.

Respond

RE: RE: MS SQL, Oracle
Jan Begre (Apr 22 2005 6:09AM)

Standard SQL...

Select a.Field1 F1, b.field1 F2, c.Field1 F3 from
Table1 a, Table2 b, Table3 c
Where
  a.Field1 = b.Field1 and
  c.Field1 = a.Field1 and
  c.SomeOtherField <> b.SomeOtherField;

The only difference is - you have no + sign...
Respond














 
Sign up to consume product discounts for Bronze memberships !

read more


  Visit our Sponsor

 

  Community Ad of
S. Kucherov
 
   














 







     
  Copyright © 2000 - 2007 delphi3000.com - All rights reserved. Terms of use. || Privacy
delphi3000.com is a service by bluestep.com IT-Services GmbH (Vienna)