I don't follow your logic. Why do you think a PROCEDURE (SQL keywords
in uppercase, please) that comprises a single statement is not really a
procedure?
I agree, this is a bit of a semantics, or issue of "English".
However, I don't consider JET sql a procedural system, and by "most"
defines, it is not.
Both JET, and sql server do allow the use of the "procedure" keyword, but in
the case of jet, you actually NEVER run procedural code.
While JET supports the PROCEDURE keyword, JET actually does not support sql
procedural code, and I think that is a big issue, and the reason for me
making the distinction.
I mean, really...so what that JET has a PROCEDURE keyword. All that results
in is a query with parameters for the select statement.
It is RATHER misleading to state that JET supports procedures in sql. It
does not, it supports select query's with parameters. The only issue that
confusedness this is that both sol server and JET allow procedure declares
that is a select statement with parameters. The INSTANT you write any code
in sql, then JET will NOT be useable. It is not just a issue cursors as you
pointed out.
Where I come from, procedural code allows branching, if..then ..else...and
variable declares. JET sql has NONE of these features.
I mean, because we call a Candy dish a soup bowel, that does NOT change what
it is. A Candy dish is that 4.5 inch piece of glass modeled with rims, and
CAN be used for holding soup. The name we give the object DOES NOT CHANGE
ITS NATURE!!! It is still the candy dish, even if we choose to use a
different name. the name does not change what that "thing" is!!
Can you provide
a citation to support your idea that a single step 'process' is not
technically a procedure?
Well, procedural code systems include the following:
if...then else
branching code
looping code
ability to declare variables..etc.
sql server procedures have all of the above
jet procedure has NONE.
JET simply allows the execution of a sql statement.
So, sure...if we look up the definition of procedure...JET procedure would
not make the cut...
http://en.wikipedia.org/wiki/Procedure
A procedure produce is not a "action"..but a series of actions..it is
"many", or plural. A procedure system can have ONLY one step in it, but that
does not make a system that allows ONLY ONE step a procedural system. All
this means is that a procedure system with one step can look like a single
JET sql statement, but the reverse is not the case..and thus the definition
also does not apply to the reverse.
So, procedural sql systems can have one step, but a system that allows one
sql step still DOES NOT make it a procedural system at all (dispute even
giving it that name). We can call a house a car..but, you can't drive that
house. It is not the name that changes what something is!!!
It can be but is not limited to that definition. For Jet, a PROCEDURE
can be any SQL statement, DML, DDL or DCL, and the use of parameters is
not a prerequisite.
Ok, sure...I was not 100% sure that JET allowed anything else then select,
or updates for the procedure declare. So, ok, sure, the above seems ok, but
we are still limited to ONE statement, and the term "procedure", or
"procedural" still does not apply by any reasonable definition here.
OK so your grammar is not 100% - not that I consider that to be an
issue - so did you mean to say "procedural code"? If that is the case
then I agree: Jet SQL does not support cursors so procedural code must
be performed elsewhere
No, it not even a issue of cursors. Why is that a issue? You can write
code in t-sql that don't even use a table, and loops. The issue is do
we consider a system hat allows ONE statement to execute a
procedural system? Answer: no, we do not. It is not a issue
of cursors at all. And, most definitions you look up for what
defines a procedure would not fall under one sql statement that
jet allows.
So, a system without branching, or the ability to execute more
then ONE statement is not a procedural in my books...even if you give
it that name. I don't think many would see this issue much different.
Surely you realise that most people, Access MVPs included, not only use
the terms 'Access' and 'Jet' interchangeably but aren't always aware of
the boundaries between the two? For example, consider this thread from
the Usenet archive:
Yes, you are absolute correct. For 99% of the cases, a person
coming into this newsgroup, and says I am converting something from
sql server to ms-access mean I *USUALLY* can assume that the person will
have ms-access as a tool to use here.
Obviously in this case, I was
100% dead wrong. My assumption that this person had ms-access
as a solution was simply wrong. Not really a big deal.
Perhaps I should have asked if
this was the case, but I did not. Really, just not a big deal either way,
since 99% of the time, I *can* assume that the person has
ms-access available as a solution.
If the OP had simply said, I am building asp web site, and
moving data from sql server to ms-access, then I would have
keyed in instantly on this issue..
I quote the above thread because, Albert, you seem to be saying the
opposite i.e. that a database is considered to be 'Jet' and not
'Access' unless they have used something - what? - from the Access user
interface.
Yes, I most certainly am. If you come here ask where can I download JET
or where can I download ms-access, you going to get two VERY different
answers.
So, sure, I actually do consider the data store to be a JET database, and I
consider ms-access the developers tool. So, yes...I do think that way!.
And, a very large portion of the community also thinks this way.
WHEN WE DO NEED to make the distinguish, among developers, there
is LITTLE diversity on this issue.
I man, what would you suggest as a term to used to make the distinguish?
Often WE DO need to make a distinguish between JET and ms-access.
So, most (many) people here use the term JET, or ms-access,
or database interchangeably. This is generally not a problem for 99%
of the questions here. So, it is not being so right, or so wrong
here, it is just simple question of what terms people use to define
what. Most of the time, it don't matter. Unfortunate, in this
case it did!!!
I consider ms-access the development part, and the JET the
database part. In fact, the whole confusing for this user on this
issue is a result of this (or, shall I say lack of).
Remember, you can actually use ms-access, and NOT USE
jet! If you use a adp project, you not using jet, and are using a 100%
native oleDB connection to sql server...there is not even local tables, nor
are they allowed.
So what I am saying is, without a strict definition from the vendor or
even a consistency in usage among Access MVPs (perhaps also in absence
of Jet newsgroups and corresponding Jet MVPs), I simply see no value in
differentiating between Jet and Access in the way you seem to advocate.
We do for the most part make that difference known when it is needed.
Remember, every copy of windows xp ships with the JET database installed,
However, windows does not ship with ms-access.
What this means is that any windows box can open and read a mdb file
without having to install any software!!! I think that is quite a
significant
issue!! ms-access is NOT jet., no more so then is VB6, or a c++ application
that happens to use JET as its data store. (Simply accounting uses JET, and
that means you can open simply accounting files with ms-access, but ONLY
because simply accounting uses JET...it was not written in ms-access - so,
you can open Simply accounting tables in ms-access, but you certainly can't
modify the forms and code using in simply accounting with ms-access).
We do need to difference. This thread and post is a *perfect* example
of this. And, most technical documents and writing DO MAKE the
distinction WHEN IT matters.
So, actually,if you look at posts here, for the most part, people do use the
term JET and ms-access interchanble.
As mentioned, MANY
time, the distinction really don't matter. However, in many cases it
DOES matter...
IF the person had said I am using a JET database, I can 100% bet you
that my first response would have been to explain to the user that
JET supports the procedure keyword, but does NOT support
procedural code as posted.
So, sure...we tend to overlook, or often not make much of a
point to difference on JET vs ms-access. Often, we don't, and often
things are a bit loose in this regards, but for the most part, it is
reasonable distinction to make, especially WHEN it makes a difference.
All of the access developer team will use the term JET, or now
ACE (that is the name of the new JET for a2007) when speaking
of JET features. In fact, the database engine has a new name
for a2007. We did not call is ms-access 2007, but the data
engine is now called ACE. You can WELL bet that any
poster using the term ACE in place of JET, or in place
of ms-access will MOST CERTAINLY be more clear
as to what they are speaking about.
I mean, JET is shipped, and pre-installed on very copies of windows.
I can write windows scripts to open, and read data on any windows xp
box, and I DO NOT need to have ms-access installed to read that mdb
file. Further, virally any user of a web site who places a mdb file on that
web site..and connects to it (via ADO+JET) is using that mdb file, and is
NOT running a copy, nor has NOT installed ms-access on that web server.
(most web providers will advertise that they support ms-access, but in fact
they mean JET...since ms-access is never installed on that web server).
So, parts of the industry, often don't make the distinction, but among the
developer crowd, the distinction between JET and ms-access is rather a
solid and traditional used term to difference the two products...