[thelist] Beginner asp question

rudy r937 at interlog.com
Thu Oct 17 07:52:01 CDT 2002

>... Access (second stupidest app name ever)

the stupidest, of course, being "microsoft works"

to pay for this offtopic remark, i'd like to introduce a tip which some may
find surprising, coming from me

y'all are familiar with the concept of separating style from content?

it's difficult, isn't it?

the ultimate separation is achieved when you have used not a single class
or id name, applying all styles just to the structure, i.e. tags (aside:
run this concept by your favourite css guru and look for the interesting
facial shade of purple)

with database-drive web sites, a similar objective in development should be
the separation of application and database, such that there is no logic in
the application to deal with record processing

<tip type="sql">

the biggest difference between procedural thinking and set-based thinking
lies in the approach to accomplishing some action involving a number of

with procedural thinking, it's "do this, then do this, then this"

with set-based thinking, it's "these are the records i want"

for example, consider the problem of selecting a set of records from the
database, and returning them in sequence by some column using the ORDER BY

so far so good, but now let's say you want to number the sorted rows, from
1 to N

with procedural thinking, you initialize a counter to 0, and start looping
over the returned records, incrementing the counter each time

with set-based thinking, you get the database to number the rows for you

yes, you can actually do this -- it is called a ranking query, and requires
a partial cross-join of the table to itself

is the set-based solution better?  yes, but only within limits

any solution where you can get the database to hand you the results,
instead of producing those results yourself with application code, is
better, because it separates application and database coding

ultimately, you want to reduce your application code as much as possible

however, a ranking query is relatively inefficient, and really starts to
bog down for large result sets

if you stretch the definition of "get the database to hand you the results"
to include a stored procedure, which can surreptitiously loop over the
result set and add another column for the row number, then you are well on
the way to separating application code from database code

procedural thinking is fine if it's within the realm of the database code!


More information about the thelist mailing list