Embedded SQL in Design

Whittall, Conrad Conrad.Whittall@Cognos.COM
Fri, 22 Mar 2002 13:48:58 -0500


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C1D1D2.39A05230
Content-Type: text/plain;
	charset="ISO-8859-1"

As Blue mentions, embedded SQL can dramatically improve the performance of
your PowerHouse application against relational databases...simply by
off-loading work from the application code to the database engine itself.
The example that Mark gave shows that you don't even need to declare a FILE
or CURSOR in your QDESIGN program to be able to get the database to perform
some work for you.
 
I have often seen customers use declared cursors to join a number of tables
and filter the data returned, so that a single read (FETCH) from the
database achieves what previously would have required multiple FILE
statements (with their associated ACCESS and SELECT statements). This is
particularly useful for reference data, or where the retrieval conditions
are particularly complex -- where the declared cursor can be used as the
non-updateable PRIMARY, and updateable SECONDARY records can be declared to
retrieve the underlying rows from the specific tables that we want the user
to be able to update.
 
Another area where customers often find that embedded SQL can be used to
improve performance when they move to a relational DBMS is where "WHILE
RETRIEVING" processing has been written into a QDESIGN program. It is often
possible to replace the entire WHILE RETRIEVING with just a single embedded
SQL statement. This is often much more efficient as the data to be processed
doesn't have to be read from the database into the application, potentially
then thrown away when a SELECT statement is applied, changed in the internal
PowerHouse buffers, and finally written back to the database (with the
re-read and checksum calculation automatically being done by PowerHouse to
ensure that nobody else changed the data while you were looking at it).
 
These techniques often have a more dramatic impact when your PowerHouse
application and the database engine are running on separate systems
connected via a LAN...such as with fat-client Axiant deployments. Using
embedded SQL here often dramatically reduces the volume of data that the
PowerHouse application has to retrieve from the database, and so reduces
traffic on the network between the two systems involved.
 
One small correction to what Blue mentioned (sorry Blue!). All of the
PowerHouse products on all currently supported platforms access Oracle
databases using the native Oracle Call Interface (OCI) API, not ODBC.
Similarly, they access Sybase Adaptive Server Enterprise (ASE) using the
native Client Library (CT-LIB) API, and access MS SQL Server (6.5, 7.0, and
2000) using the original, now mature, DB-LIB API. On OpenVMS, they access
Oracle Rdb through the database's native Digital Standard Relational
Interface (DSRI) API.
 
The PowerHouse products on Windows operating systems support the use of ODBC
for accessing other relational databases, such as IBM's DB2/400, Sybase
Adaptive Server Anywhere (ASA, formerly known as SQL Anywhere), and
additionally support the use of ODBC to access Microsoft SQL Server 2000 and
7.0. For anyone migrating existing applications to MS SQL Server 2000 it is
recommended that you use ODBC connections from the outset, as Microsoft is
no longer developing the DB-LIB API for this database and so new features of
this and future releases of the database may not be accessible through the
PowerHouse-provided DB-LIB connections.
 
You can see the complete list of build and test environments for all the
PowerHouse products on the Cognos Customer Support web site, at
http://support.cognos.com/support/products/ph_software_environments.html
<http://support.cognos.com/support/products/ph_software_environments.html> .
 
Best regards, 
Conrad 
Conrad Whittall 
e-Learning Architect, Global Education Services
Cognos Incorporated, 3755 Riverside Drive, Ottawa, Ontario, K1G 4K9, Canada
 
-----Original Message-----
From: Edis, Bob [mailto:BEdis@usbnc.org]
Sent: Friday 22 March 2002 12:42
To: PowerHouse List (E-mail)
Subject: RE: Embedded SQL in Design


G'day Lorry
 
Depending on the platform you are using embedded SQL can dramatically
improve performance of you PowerHouse code.  It generally is only available
if you are accessing a SQL aware DBMS (usually a RDBMS).  An example is
accessing an Oracle 8 database with PowerHouse.  This uses an inefficient
ODBC connection (SQLNet) that without using embedded SQL offers poor
performance.  On the other hand an application accessing Oracle Rdb may not
benefit much from embedded SQL as PowerHouse uses (or at least use to) a
more direct database connection method than ODBC.
 
Regards,
Blue

-----Original Message-----
From: Lorry Litman [mailto:LLitman@exchange.hsc.mb.ca]
Sent: Friday, March 22, 2002 11:36 AM
To: 'Fry, Mark'; Deskin, Bob; powerh-l@lists.swau.edu
Subject: RE: Embedded SQL in Qdesign


Hi,
 
I've not used and am not that familiar with the embedded SQL, could someone
explain the why and when one would use this?
Is this to overcome some things that can't be done or is it more effecient
or ...?
 
Thanx
       Lorry Litman

-----Original Message-----
From: Fry, Mark [mailto:Mark.Fry@COGNOS.com]
Sent: Friday, March 22, 2002 4:43 AM
To: Deskin, Bob; powerh-l@lists.swau.edu
Subject: RE: Embedded SQL in Qdesign



...and another example (not from the manual this time) is embedding SQL DML
directly into a procedure without declaring an SQL cursor, as in...

PROCEDURE PREUPDATE RECOVERABLE 
BEGIN 
  SQL IN <databasename> & 
    UPDATE PERSONNEL & 
    SET SALARY = 1000000 & 
    WHERE EMPLOYEE_CODE = 'MF' 
END 

(<sigh>, if only!!!) :-) 

Best Regards, 

Mark Fry 
Mark.Fry@Cognos.com 

-----Original Message----- 
From: Deskin, Bob [ mailto:Bob.Deskin@cognos.com
<mailto:Bob.Deskin@cognos.com> ] 
Sent: 21 March 2002 19:21 
To: powerh-l@lists.swau.edu 
Subject: RE: Embedded SQL in Qdesign 


I don't think a few examples are going to help in the generalized case. You 
can download the manuals for free from www.cognos.com/powerhouse. But here's

an example from the manual. 

> SET LIST SQL 
> SQL DECLARE EMPLIST CURSOR FOR & 
> SELECT EMPLOYEE, FIRST_NAME, LAST_NAME, & 
> EMPLOYEES.BRANCH,BRANCH_NAME & 
> FROM EMPLOYEES, BRANCHES 
> SCREEN EMPBRANCHC 
> CURSOR EMPLIST & 
> WHERE (EMPLOYEES.BRANCH = BRANCHES.BRANCH) & 
> PRIMARY KEY EMPLOYEE 
> __ Sql after substitutions are applied: 
__ SELECT EMPLOYEE, FIRST_NAME, LAST_NAME, 
__ EMPLOYEES.BRANCH, BRANCHES.BRANCH, 
__ BRANCH_NAME 
__ FROM EMPLOYEES, BRANCHES 
__ where EMPLOYEES.BRANCH = BRANCHES.BRANCH 

Bob Deskin              
PowerHouse Web Product Manager, Application Development Tools, Cognos Inc. 
bob.deskin@cognos.com (613) 738-1338 ext 7268 FAX: (613) 727-1178 
3755 Riverside Drive P.O. Box 9707 Stn. T, Ottawa ON K1G 4K9 CANADA 

-----Original Message----- 
From: John Hunter [ mailto:jthunter@nbnet.nb.ca
<mailto:jthunter@nbnet.nb.ca> ] 
Sent: Thursday, March 21, 2002 2:18 PM 
To: powerh-l@lists.swau.edu 
Subject: Embedded SQL in Qdesign 


Hi Gang, 

Could some kind soul please show me an example of an embedded SQL in 
Qdesign?  I would RTFM but, alas, I don't have one.  I think I'm close, but 
am still running into problems.  My platform is Powerhouse 820 on VMS. 

Thanks, 
-John 


= = = = = = = = = = = = = = = = = = = = = = = = = = = = 
Mailing list: powerh-l@lists.swau.edu 
Subscribe: "subscribe" in message body to powerh-l-request@lists.swau.edu 
Unsubscribe: "unsubscribe" in message body to 
powerh-l-request@lists.swau.edu 
http://lists.swau.edu/mailman/listinfo/powerh-l
<http://lists.swau.edu/mailman/listinfo/powerh-l>  
This list is closed, thus to post to the list you must be a subscriber. 

This message may contain privileged and/or confidential information.  If you

have received this e-mail in error or are not the intended recipient, you 
may not use, copy, disseminate or distribute it; do not open any 
attachments, delete it immediately from your system and notify the sender 
promptly by e-mail that you have done so.  Thank you. 

= = = = = = = = = = = = = = = = = = = = = = = = = = = = 
Mailing list: powerh-l@lists.swau.edu 
Subscribe: "subscribe" in message body to powerh-l-request@lists.swau.edu 
Unsubscribe: "unsubscribe" in message body to
powerh-l-request@lists.swau.edu 
http://lists.swau.edu/mailman/listinfo/powerh-l
<http://lists.swau.edu/mailman/listinfo/powerh-l>  
This list is closed, thus to post to the list you must be a subscriber. 

This message may contain privileged and/or confidential information.  If you
have received this e-mail in error or are not the intended recipient, you
may not use, copy, disseminate or distribute it; do not open any
attachments, delete it immediately from your system and notify the sender
promptly by e-mail that you have done so.  Thank you.


This message may contain privileged and/or confidential information.  If you
have received this e-mail in error or are not the intended recipient, you
may not use, copy, disseminate or distribute it; do not open any
attachments, delete it immediately from your system and notify the sender
promptly by e-mail that you have done so.  Thank you.

------_=_NextPart_001_01C1D1D2.39A05230
Content-Type: text/html;
	charset="ISO-8859-1"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<TITLE>RE: Embedded SQL in Qdesign</TITLE>

<META content="MSHTML 5.50.4913.1100" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=413190318-22032002><FONT size=2>As Blue mentions, embedded SQL 
can dramatically improve the performance of your PowerHouse application against 
relational databases...simply by off-loading work from the application code to 
the database engine itself. </FONT></SPAN><SPAN class=413190318-22032002><FONT 
size=2>The example that Mark gave shows that you don't even need to declare a 
FILE or CURSOR in your QDESIGN program to be able to get the database to perform 
some work for you.</FONT></SPAN></DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2>I have often seen customers use 
declared cursors to join a number of tables and filter the data returned, so 
that a single read (FETCH) from the database achieves what previously would have 
required multiple FILE statements (with their associated ACCESS and SELECT 
statements). This is particularly useful for reference data, or where the 
retrieval conditions are particularly complex -- where the declared cursor can 
be used as the non-updateable PRIMARY, and updateable SECONDARY records can be 
declared to retrieve the underlying rows from the specific tables that we want 
the user to be able to update.</FONT></SPAN></DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2>Another area where customers 
often find that embedded SQL can be used to improve performance when they move 
to a relational DBMS is where "WHILE RETRIEVING" processing has been written 
into a QDESIGN program. It is often possible to replace the entire WHILE 
RETRIEVING with just a single embedded SQL statement. This is often much more 
efficient as the data to be processed doesn't have to be read from the database 
into the application, potentially then thrown away when a SELECT statement is 
applied, changed in the internal PowerHouse buffers, and finally written back to 
the database (with the re-read and checksum calculation automatically being done 
by PowerHouse to ensure that nobody else changed the data while you were looking 
at it).</FONT></SPAN></DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2>These techniques often have a 
more dramatic impact when your PowerHouse application and the database engine 
are running on separate systems connected via a LAN...such as with fat-client 
Axiant deployments. Using embedded SQL here often dramatically reduces the 
volume of data that the PowerHouse application has to retrieve from the 
database, and so reduces traffic on the network between the two systems 
involved.</FONT></SPAN></DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2>One small correction to what 
Blue mentioned (sorry Blue!). All of the PowerHouse products on all currently 
supported platforms access Oracle databases using the native Oracle Call 
Interface (OCI) API, not ODBC. Similarly, they access Sybase Adaptive Server 
Enterprise (ASE) using the native Client Library (CT-LIB) API, and access MS SQL 
Server (6.5, 7.0, and 2000) using the original, now mature,&nbsp;DB-LIB API. On 
OpenVMS, they access Oracle Rdb through the database's native Digital Standard 
Relational Interface (DSRI) API.</FONT></SPAN></DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2>The PowerHouse products on 
Windows operating systems support the use of ODBC for accessing other relational 
databases, such as IBM's DB2/400, Sybase Adaptive Server Anywhere (ASA, formerly 
known as SQL Anywhere), and additionally support the use of ODBC to access 
Microsoft SQL Server 2000 and 7.0. For anyone migrating existing applications to 
MS SQL Server 2000 it is recommended that you use ODBC connections from the 
outset, as Microsoft is no longer developing the DB-LIB API for this database 
and so new features of this and future releases of the database may not be 
accessible through the PowerHouse-provided DB-LIB 
connections.</FONT></SPAN></DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=413190318-22032002><FONT size=2>You can see the complete list 
of build and test environments for all the PowerHouse products on the Cognos 
Customer Support web site, at <A 
href="http://support.cognos.com/support/products/ph_software_environments.html">http://support.cognos.com/support/products/ph_software_environments.html</A>.</FONT></SPAN></DIV>
<DIV><SPAN class=413190318-22032002></SPAN>&nbsp;</DIV>
<DIV><SPAN class=413190318-22032002></SPAN><SPAN class=413190318-22032002><FONT 
face=Verdana size=2>Best regards,</FONT> <BR><B><I><FONT face="Times New Roman" 
color=#000080 size=6>Conrad</FONT></I></B><I></I> </DIV>
<DIV><FONT color=#808080 size=1><STRONG>Conrad Whittall <BR>e-Learning 
Architect, Global Education Services</STRONG></FONT></DIV>
<DIV><FONT color=#808080 size=1><STRONG>Cognos Incorporated, 3755 Riverside 
Drive, Ottawa, Ontario, K1G 4K9, Canada</STRONG></FONT></DIV>
<DIV><STRONG><FONT size=1></FONT></STRONG></SPAN>&nbsp;</DIV>
<DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
size=2>-----Original Message-----<BR><B>From:</B> Edis, Bob 
[mailto:BEdis@usbnc.org]<BR><B>Sent:</B> Friday 22 March 2002 
12:42<BR><B>To:</B> PowerHouse List (E-mail)<BR><B>Subject:</B> RE: Embedded SQL 
in Design<BR><BR></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=283083717-22032002>G'day 
Lorry</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=283083717-22032002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=283083717-22032002>Depending on the platform you are using embedded SQL 
can dramatically improve performance of you PowerHouse code.&nbsp; It generally 
is only available if you are accessing a SQL aware DBMS (usually a RDBMS).&nbsp; 
An example is accessing an Oracle 8 database with PowerHouse.&nbsp; This uses an 
inefficient ODBC connection (SQLNet) that without using embedded SQL offers poor 
performance.&nbsp; On the other hand an application accessing Oracle Rdb may not 
benefit much from embedded SQL as PowerHouse uses (or at least use to) a more 
direct database connection method than ODBC.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=283083717-22032002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=283083717-22032002>Regards,</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=283083717-22032002>Blue</SPAN></FONT></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
  size=2>-----Original Message-----<BR><B>From:</B> Lorry Litman 
  [mailto:LLitman@exchange.hsc.mb.ca]<BR><B>Sent:</B> Friday, March 22, 2002 
  11:36 AM<BR><B>To:</B> 'Fry, Mark'; Deskin, Bob; 
  powerh-l@lists.swau.edu<BR><B>Subject:</B> RE: Embedded SQL in 
  Qdesign<BR><BR></FONT></DIV>
  <DIV><FONT face=Arial color=#0000ff size=2><SPAN 
  class=536323017-22032002>Hi,</SPAN></FONT></DIV>
  <DIV><FONT face=Arial color=#0000ff size=2><SPAN 
  class=536323017-22032002></SPAN></FONT>&nbsp;</DIV>
  <DIV><FONT face=Arial color=#0000ff size=2><SPAN class=536323017-22032002>I've 
  not used and am not that familiar with the embedded SQL, could someone explain 
  the why and when one would use this?</SPAN></FONT></DIV>
  <DIV><FONT face=Arial color=#0000ff size=2><SPAN class=536323017-22032002>Is 
  this to overcome some things that can't be done or is it more effecient or 
  ...?</SPAN></FONT></DIV>
  <DIV><FONT face=Arial color=#0000ff size=2><SPAN 
  class=536323017-22032002></SPAN></FONT>&nbsp;</DIV>
  <DIV><FONT face=Arial color=#0000ff size=2><SPAN 
  class=536323017-22032002>Thanx</SPAN></FONT></DIV>
  <DIV><FONT face=Arial color=#0000ff size=2><SPAN 
  class=536323017-22032002>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lorry 
  Litman</SPAN></FONT></DIV>
  <BLOCKQUOTE style="MARGIN-RIGHT: 0px">
    <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
    size=2>-----Original Message-----<BR><B>From:</B> Fry, Mark 
    [mailto:Mark.Fry@COGNOS.com]<BR><B>Sent:</B> Friday, March 22, 2002 4:43 
    AM<BR><B>To:</B> Deskin, Bob; powerh-l@lists.swau.edu<BR><B>Subject:</B> RE: 
    Embedded SQL in Qdesign<BR><BR></DIV></FONT>
    <P><FONT size=2>...and another example (not from the manual this time) is 
    embedding SQL DML directly into a procedure without declaring an SQL cursor, 
    as in...</FONT></P>
    <P><FONT size=2>PROCEDURE PREUPDATE RECOVERABLE</FONT> <BR><FONT 
    size=2>BEGIN</FONT> <BR><FONT size=2>&nbsp; SQL IN &lt;databasename&gt; 
    &amp;</FONT> <BR><FONT size=2>&nbsp;&nbsp;&nbsp; UPDATE PERSONNEL 
    &amp;</FONT> <BR><FONT size=2>&nbsp;&nbsp;&nbsp; SET SALARY = 1000000 
    &amp;</FONT> <BR><FONT size=2>&nbsp;&nbsp;&nbsp; WHERE EMPLOYEE_CODE = 
    'MF'</FONT> <BR><FONT size=2>END</FONT> </P>
    <P><FONT size=2>(&lt;sigh&gt;, if only!!!) :-)</FONT> </P>
    <P><FONT size=2>Best Regards,</FONT> </P>
    <P><FONT size=2>Mark Fry</FONT> <BR><FONT size=2>Mark.Fry@Cognos.com</FONT> 
    </P>
    <P><FONT size=2>-----Original Message-----</FONT> <BR><FONT size=2>From: 
    Deskin, Bob [<A 
    href="mailto:Bob.Deskin@cognos.com">mailto:Bob.Deskin@cognos.com</A>]</FONT> 
    <BR><FONT size=2>Sent: 21 March 2002 19:21</FONT> <BR><FONT size=2>To: 
    powerh-l@lists.swau.edu</FONT> <BR><FONT size=2>Subject: RE: Embedded SQL in 
    Qdesign</FONT> </P><BR>
    <P><FONT size=2>I don't think a few examples are going to help in the 
    generalized case. You</FONT> <BR><FONT size=2>can download the manuals for 
    free from www.cognos.com/powerhouse. But here's</FONT> <BR><FONT size=2>an 
    example from the manual.</FONT> </P>
    <P><FONT size=2>&gt; SET LIST SQL</FONT> <BR><FONT size=2>&gt; SQL DECLARE 
    EMPLIST CURSOR FOR &amp;</FONT> <BR><FONT size=2>&gt; SELECT EMPLOYEE, 
    FIRST_NAME, LAST_NAME, &amp;</FONT> <BR><FONT size=2>&gt; 
    EMPLOYEES.BRANCH,BRANCH_NAME &amp;</FONT> <BR><FONT size=2>&gt; FROM 
    EMPLOYEES, BRANCHES</FONT> <BR><FONT size=2>&gt; SCREEN EMPBRANCHC</FONT> 
    <BR><FONT size=2>&gt; CURSOR EMPLIST &amp;</FONT> <BR><FONT size=2>&gt; 
    WHERE (EMPLOYEES.BRANCH = BRANCHES.BRANCH) &amp;</FONT> <BR><FONT 
    size=2>&gt; PRIMARY KEY EMPLOYEE</FONT> <BR><FONT size=2>&gt; __ Sql after 
    substitutions are applied:</FONT> <BR><FONT size=2>__ SELECT EMPLOYEE, 
    FIRST_NAME, LAST_NAME,</FONT> <BR><FONT size=2>__ EMPLOYEES.BRANCH, 
    BRANCHES.BRANCH,</FONT> <BR><FONT size=2>__ BRANCH_NAME</FONT> <BR><FONT 
    size=2>__ FROM EMPLOYEES, BRANCHES</FONT> <BR><FONT size=2>__ where 
    EMPLOYEES.BRANCH = BRANCHES.BRANCH</FONT> </P>
    <P><FONT size=2>Bob 
    Deskin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    </FONT><BR><FONT size=2>PowerHouse Web Product Manager, Application 
    Development Tools, Cognos Inc.</FONT> <BR><FONT size=2>bob.deskin@cognos.com 
    (613) 738-1338 ext 7268 FAX: (613) 727-1178</FONT> <BR><FONT size=2>3755 
    Riverside Drive P.O. Box 9707 Stn. T, Ottawa ON K1G 4K9 CANADA</FONT> </P>
    <P><FONT size=2>-----Original Message-----</FONT> <BR><FONT size=2>From: 
    John Hunter [<A 
    href="mailto:jthunter@nbnet.nb.ca">mailto:jthunter@nbnet.nb.ca</A>]</FONT> 
    <BR><FONT size=2>Sent: Thursday, March 21, 2002 2:18 PM</FONT> <BR><FONT 
    size=2>To: powerh-l@lists.swau.edu</FONT> <BR><FONT size=2>Subject: Embedded 
    SQL in Qdesign</FONT> </P><BR>
    <P><FONT size=2>Hi Gang,</FONT> </P>
    <P><FONT size=2>Could some kind soul please show me an example of an 
    embedded SQL in</FONT> <BR><FONT size=2>Qdesign?&nbsp; I would RTFM but, 
    alas, I don't have one.&nbsp; I think I'm close, but</FONT> <BR><FONT 
    size=2>am still running into problems.&nbsp; My platform is Powerhouse 820 
    on VMS.</FONT> </P>
    <P><FONT size=2>Thanks,</FONT> <BR><FONT size=2>-John</FONT> </P><BR>
    <P><FONT size=2>= = = = = = = = = = = = = = = = = = = = = = = = = = = 
    =</FONT> <BR><FONT size=2>Mailing list: powerh-l@lists.swau.edu</FONT> 
    <BR><FONT size=2>Subscribe: "subscribe" in message body to 
    powerh-l-request@lists.swau.edu</FONT> <BR><FONT size=2>Unsubscribe: 
    "unsubscribe" in message body to</FONT> <BR><FONT 
    size=2>powerh-l-request@lists.swau.edu</FONT> <BR><FONT size=2><A 
    target=_blank 
    href="http://lists.swau.edu/mailman/listinfo/powerh-l">http://lists.swau.edu/mailman/listinfo/powerh-l</A></FONT> 
    <BR><FONT size=2>This list is closed, thus to post to the list you must be a 
    subscriber.</FONT> </P>
    <P><FONT size=2>This message may contain privileged and/or confidential 
    information.&nbsp; If you</FONT> <BR><FONT size=2>have received this e-mail 
    in error or are not the intended recipient, you</FONT> <BR><FONT size=2>may 
    not use, copy, disseminate or distribute it; do not open any</FONT> 
    <BR><FONT size=2>attachments, delete it immediately from your system and 
    notify the sender</FONT> <BR><FONT size=2>promptly by e-mail that you have 
    done so.&nbsp; Thank you.</FONT> </P>
    <P><FONT size=2>= = = = = = = = = = = = = = = = = = = = = = = = = = = 
    =</FONT> <BR><FONT size=2>Mailing list: powerh-l@lists.swau.edu</FONT> 
    <BR><FONT size=2>Subscribe: "subscribe" in message body to 
    powerh-l-request@lists.swau.edu</FONT> <BR><FONT size=2>Unsubscribe: 
    "unsubscribe" in message body to powerh-l-request@lists.swau.edu</FONT> 
    <BR><FONT size=2><A target=_blank 
    href="http://lists.swau.edu/mailman/listinfo/powerh-l">http://lists.swau.edu/mailman/listinfo/powerh-l</A></FONT> 
    <BR><FONT size=2>This list is closed, thus to post to the list you must be a 
    subscriber.</FONT> </P>
    <P><FONT size=2>This message may contain privileged and/or confidential 
    information.&nbsp; If you have received this e-mail in error or are not the 
    intended recipient, you may not use, copy, disseminate or distribute it; do 
    not open any attachments, delete it immediately from your system and notify 
    the sender promptly by e-mail that you have done so.&nbsp; Thank 
    you.</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>
<BR>

<P><FONT SIZE=2 FACE="Arial">This message may contain privileged and/or confidential information.  If you have received this e-mail in error or are not the intended recipient, you may not use, copy, disseminate or distribute it; do not open any attachments, delete it immediately from your system and notify the sender promptly by e-mail that you have done so.  Thank you.</FONT></P>

------_=_NextPart_001_01C1D1D2.39A05230--