Just so we're clear on this Joe, you think ODBC is bad, eh ? ;-)  (The eh, 
was my canadian/Minnesotan impression.)

Actually we work with the iSeries Access ODBC, .Net Provider and JDBC 
quite regularly and we typically achieve sub-second response times, so in 
my opinion based in experience, performance isn't much of an issue in 
today's environment. 

In terms of managing library lists, if we put SQL into a business object, 
we have properties that get set in the business object to control library 
lists for the data. We also qualify our SQL with the library name where 
the tables reside. Seems to work quite well and give us complete control 
over which library we're accessing. 

Your point about security can be mitigated somewhat by wrapping all SQL or 
database access into a business layer as I advocate and I believe you do 
as well with the messaging architecture that you recommend. You can 
definitely reduce the possibility for hacks if you use the message based 
approach, but since most other non-iSeries database applications support 
data access via direct SQL or business objects that use SQL, I don't think 
we can hang our hats on not using SQL.

Here's my thoughts on why:

<A little soapboxing>

I know the message based architecture concept is fast and safe and all 
that, but I am regularly running into people who are fighting to keep 
their iSeries systems alive in the realm of 30-something CIO's who want to 
dump the iSeries because of the green screen.  While this is not really a 
good business move, we can't continue to always fight the "I want to use 
SQL to access the iSeries, how do I do it"  complaints with "You need to 
write special iSeries code to keep the programmers and hackers safe from 
the system". If we do that, then the youngling's will eventually win the 
war and the iSeries will continue to get dumped. 

If we instead talk about the concepts of using safe business objects to 
wrap database access or messaging access so that the code is re-usable 
across applications and SQL is not embedded into pages directly, then 
maybe the young Linux/Windows-Generation will learn the value of writing a 
"business layer" instead of throwing a bunch of spaghetti SQL into some 
quick web pages. 

We sold a VB tool called DDA/400 back in the 90's in the early days of 
iSeries SQL and ODBC.  The main reason for this tool was record-level 
database access for speed.  With JT400 and other tools today, the need for 
a tool like DDA/400 has been eliminated but I can't count the number of 
calls we took where the PC developers would say "That record level thing 
sounds good, but we need to use SQL for flexibility".  In the late 90's we 
saw the handwriting on the wall in regards to SQL being used more and 
more, so I believe we must teach "safe SQL", not abstinance :-)

</A little soapboxing>

For the seasoned iSeries developers, a nice happy medium is the concept of 
using stored procedures to access data from a business layer.  The concept 
of calling an RPG stored procedure and returning a result set lets all the 
SQL access live in the iSeries database and within RPG programs. Then the 
logic can be used from another RPG program, an PC web page application or 
a business object written in Java or VB or C# or whatever......

At lease we're giving people food for discussion :-)

Richard Schoen
RJS Software Systems Inc. 
"Providing Your....iNFORMATION NOW!"
Email: richard@xxxxxxxxxxxxxxx
Web Site: http://www.rjssoftware.com
Tel: (952) 898-3038
Fax: (952) 898-1781
Toll Free: (888) RJSSOFT
message: 4
date: Sat, 25 Nov 2006 11:19:51 -0600
from: "Joe Pluta" <joepluta@xxxxxxxxxxxxxxxxx>
subject: RE: Updating files from the web

I don't want to put words into Eduard's mouth, but I think the issue was
more about ODBC rather than SQL.

ODBC is bad.

This thread ...


Return to Archive home page | Return to MIDRANGE.COM home page