Publishing Your PDB Under Windows

Slides:



Advertisements
Similar presentations
WEB AND WIRELESS AUTOMATION connecting people and processes InduSoft Web Solution Welcome.
Advertisements

The following 10 questions test your knowledge of Internet-based client management in Configuration Manager Configuration Manager 2007 Internet-Based.
Module 1: Introduction to SQL Server Reporting Services.
ActiveXperts Network Monitor Monitors servers, workstations and devices for availability Alerts and corrects.
Tux2 Database The Architecture of Our System © Juhani Välimäki 2005.
Overview of the technology that comprises Attendance Enterprise.
IIS Technologies.
Building Applications using ASP.NET and C# / Session 1 / 1 of 21 Session 1.
Technical Architectures
Session 6 Server-side programming - ASP. An ASP page is an HTML page interspersed with server-side code. The.ASP extension instead of.HTM denotes server-side.
The ADO Data Control. Universal Data Access Open Database Connectivity (ODBC) –standard for accessing data in databases OLE-DB –allows access to data.
Introduction to ASP.NET. 2 © UW Business School, University of Washington 2004 Outline Static vs. Dynamic Web Pages.NET Framework Installing ASP.NET First.
14 1 Chapter 14 Database Connectivity and Web Development Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
INTERNET DATABASE. Internet and E-commerce Internet – a worldwide collection of interconnected computer network Internet – a worldwide collection of interconnected.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 8: Implementing and Managing Printers.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 8 Introduction to Printers in a Windows Server 2008 Network.
Chapter 14 Database Connectivity and Web Technologies
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
Visual Basic 6.0 Derived from BASIC Developed by Microsoft in 1998 An event driven programming language Associated with a development environment.
X2O Server Installation
WebCCTV 1 Contents Introduction Getting Started Connecting the WebCCTV NVR to a local network Connecting the WebCCTV NVR to the Internet Restoring the.
Dynamics AX Technical Overview Application Architecture Dynamics AX Technical Overview.
Web-based Software Development - An introduction.
CIS 764 – Presentation Somil Chandwani.  With Microsoft Data Access Components (MDAC), developers can connect to and use data from a wide variety of.
IS 4506 Database Connectivity.  Overview Two and Three-Tier C/S Architecture ASP Database Connection ODBC - Connection to DBMS Overview of transaction.
1 Web Database Processing. Web Database Applications Static Report Publishing a report is prepared from a database application and exported to HTML DB.
September 6, 2015 Connecting Client Applications to Informix Databases using IBM Informix Connect and ODBC James Edmiston Database Consultant Quest Information.
1 Modular Software/ Component Software 2 Modular Software Code developed in modules. Modules can then be linked together to produce finished product/program.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
How to Configure Informix Connect and ODBC James Edmiston Informix DBA Consultant/Quest Information Systems, Inc. Informix User Forum 2005 Moving Forward.
ADO Connect Y.-H. Chen International College Ming-Chuan University Fall, 2004.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
Data-Enabled Web Sites: Classibooks.com & Internet Database Technologies Colin Fukai April 4, 2000 Gonzaga University.
3/8/00asp00 1 Active Server Pages from Microsoft Nancy McCracken Northeast Parallel Architectures Center at Syracuse.
CSS/417 Introduction to Database Management Systems Workshop 5.
Session 10 Windows Platform Eng. Dina Alkhoudari.
Obsydian OLE Automation Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
Internet, intranet, and multimedia database processing l Database processing across local and wide area networks l Alternative architectures for distributing.
Fundamentals of Database Chapter 7 Database Technologies.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
Tutorial 10 by Sam ine1020 Introduction to Internet Engineering 1 Database & Server-side Scripting Tutorial 10.
Attendance Enterprise Capabilities Required by Information Technology.
Health South Network Demonstration of Attendance Enterprise.
ABC Manufacturing Demonstration of Attendance Enterprise.
Introduction to ADO Y.-H. Chen International College Ming-Chuan University Fall, 2004.
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
What is database?  Any Method for access info into Application from DataBase?  ODBC is standard for Accessing Data.  Problem with ODBC:  Information.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
NTSMF Web-Based Reporting Techniques Jim Quigley conEdison.
DAVID M. KROENKE’S DATABASE PROCESSING, 10th Edition © 2006 Pearson Prentice Hall 12-1 David M. Kroenke’s Chapter Twelve: ODBC, OLE DB, ADO, and ASP Part.
Copyright © Curt Hill Connectivity Communicating with the Database.
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
WEB SERVER SOFTWARE FEATURE SETS
ADO.NET Architecture MIS3502: Application Integration and Evaluation David Schuff Adapted from material by Arnold Kurtz, David.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
7-1 Active Server and ADO Colorado Technical University IT420 Tim Peterson.
Planning Application Services Lesson 4. Deploying Application Servers Organizations supply their employees with computers so that they can get work done,
Introduction Microsoft Visual FoxPro 5.0 Rainer Becker MSP, MCP, MVP, dFPUG ISYS GmbH, W&B GmbH ™
A S P. Outline  The introduction of ASP  Why we choose ASP  How ASP works  Basic syntax rule of ASP  ASP’S object model  Limitations of ASP  Summary.
Active Server Pages v.s. Java Server Pages Presenters: Lan Guo Qunying Fan Pei-Xun Wu Date:
Web-based Software Development - An introduction
Accessing the Database Server: ODBC, OLE DB, and ADO
Data Virtualization Demoette… ADO.NET Client
Printers.
Lesson #8 MCTS Cert Guide Microsoft Windows 7, Configuring Chapter 8 Configuring Applications and Internet Explorer.
IS 4506 Server Configuration (HTTP Server)
ASP.NET Module Subtitle.
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Presentation transcript:

Publishing Your PDB Under Windows Jim Quigley conEdison

T

Introduction Tutorial How to publish the contents of a database using features available in Microsoft Windows Local machine Legacy client/server Intranet/Internet PDB or other SAS is dbms in all samples Oracle/Sybase, access & sql server in ms doc Leagcy – app runs in window on client, database on server. (fat client)

Introduction “Might be a little bit heavy on the VB/ HTML side for old-time capacity planners...” Vic Soder, CMG ERB If you have ever written a COBOL program, you are overqualified for web development. Everlybody has different “web” experience. Cover a lot of ground web develepoer coding vb for 10 years and design web sites nothing new till last 20 minutes if your editor is spf ir vi then we will be covering a lot of ground not a code review - discus what you can do if you take he time to wrapsome script around these powerfull objects

Disclaimer All products mentioned are the property of their owners It may possible to use these technologies to publish data in ways that were not intended, or that have licensing implications Everbody does this, but take it further SAS & MS Have no interest or affiliation, financial or otherwise Traditional client server –one server license and a dozen client license Put in on out Intranet – they wanted us to pay for 10,000 clients Not MS or IBM… ado/rds - sas has their own progucts in this space - support i s a business decision SAS/MMDB (Milti-Dimentional DataBase) IOM SAS/Share SAS/Access Interface to ODBC

Agenda Scripting Data Access Methods ActiveX Controls Overview Configuration Issues Sample Scripts ActiveX Controls Office Web Components Script - briefly

Scripting

Scripting Script is the glue Vbscript and Jscript Legacy Windows WSH – Windows Scripting Host Browser Client-side and Server-side Can use VB or VC of course, but we will concentrate on Vbscript because it is directly portable between Windows window and the browser easy not compiled – exec from ascii Compelling – get so much done with just a few lines Mix-n-match Both vbs and htm directly “clickable” under windows…Until 5/4 you could run vbs wih a click iloveyou

Scripting SAS M Browser T D I A V C E X SQL Script Server Window Access Window Browser M D A C Script T I V E X vsam-cobol-cics map BMS File control / terminal control Visual controls

Microsoft Data Access Components MDAC Microsoft Data Access Components

MDAC Universal Data Access ODBC – Open Database Connectivity OLE DB – OLE Database ADO – Active Data Objects RDS – Remote Data Services ADO.Net - ??? Hierarchy DB Lib, RDO

MDAC MSDASQL MS OleDb provider for ODBC - If ODBC then all except non-sql

ODBC Circa 1990 Ubiquitous drivers Not an Object-Oriented API Relational bias Any repository worth it’s salt has an odbc driver Bias not an issue if your data is supported A ton of apps out there rely on ODBC, and OleDb not available for all – SAS only with V8

OLE DB COM interface Support for broader spectrum of data repositories Interface used by ADO ODBC data sources accessible via “MS OLE DB provider for ODBC” Possibly with reduced function ole db = tabular ADO requirement more powerful – MSDASQL raises OCBC, but not all ole db features supported Component Object Model

ADO (currently) Highest level interface Simplified object structure Relies on OLE DB Only need to define one object No need to keep track of cursors an handles and the like

RDS Makes ADO data sources accessible across a network HTTP, HTTPS, or DCOM Uses Microsoft Internet Information Server as conduit Q250536 - MSADC Properties in IIS manager , Directory Security, "IP Address and Domain Name Restrictions"

RDS Requesting & serving processes can be on different machines MIME, not XML Multipurpose Internet Mail Extension (MIME)

MDAC Configuration Issues Gotchas -

ODBC Data Sources Control Panel Administrative Tools Data Sources (ODBC) SAS ODBC Drivers System Data Source TCP Port c:\WINNT\system32\drivers\etc\services Win200, elsewhere in other Win version SAS doc good, but System dsn = data access occurs under the control of processes running with different credentials DDE no longer supported after V7 TCP Port – “you may need to …”

SAS TCP Port It took me a long time to get this stuff working, which is precicely why I’m talking about it No sense Reinventing the wheel

SAS ODBC vs. OLE DB OLE DB ODBC Auto install with V8 Separate install SQL not supported Direct lib/member access Field name is variable name ODBC Separate install Full SQL support Runs Proc OdbcServ instance Field name is variable label There are some small holes in SAS compatibility with MDAC Work in progress Mr. Goodnight stands to be one of the wealthies men in America following the IPO Documentation D:\Program Files\SAS Institute\Shared Files\SAS OLE DB Data Providers\sasafbas.dll .chm

MSDFMAP.ini RDS Security C:\WinNT\System\MSDFMAP.ini Create token to identify local data source for remote access Determine permitted access Can’t make it too easy - Wouldn’t be good it I could read any database on your system Not hard to see that RDS could pose a security risk Shipped with no access – only to Microsoft samples Malicious person might… Determines which data sources can be accessed remotely and how Which sql statements, even Specific sql – like stored procdures SP1 will replace msdfmap.ini

MSDFMAP.ini This was the knottiest problem

MSDFMAP.ini [connect default] Access=NoAccess [sql default] ;Sql=" “ ' <---comment this line out [connect PDB] Access=ReadOnly Connect="Provider=sas.LocalProvider.1; Data Source=d:\PDB\Detail\“ [connect SasRemote] Access=ReadOnly Connect="Data Source=SasLocal" Some useful comments and connect sections that enable samples TechNet – though I’m still not motivated keyword/value pair

Other RDS/IIS Issues IIS uses IWAM-servername as proxy (Launch IIS Process Account) WQExxxxx.TRC diagnostics Recommendations (SAS) ODBC – Start Proc OdbcServ manually OLE DB – give IWAM-servername read permission to PDB ODBC – start Proc OdbcServ if not already running Stop with wmi Start with libname list

MDAC Interfaces How do write script to use the MDAC

ADO Objects

RecordSet Object Set rs = CreateObject(“ADODB.Recordset”) Methods rs.Open, rs.Close rs.MoveFirst, Rs.MoveNext Properties rs.BOF, rs.EOF rs.Connection Open DCB Methods – Put/Get Properties – Lrecl/Blksize/Recfm Methods – subroutines DSECT – readtcb

Field Object Fields collection contains Field objects, one for each column in the table rs.Fields.Count – number of columns rs.Fields(x).Value - value rs.Fields(x).Name – label Count is single instance Lots of other MetaData data type, precision, formatting…

Warning Code to Follow

ADO Script - WSH Set rs = CreateObject(“ADODB.Recordset”) ConnectionString = “DSN=SasLocal” Sql = “Select PCTCPUTM from PDB.System” rs.Open Sql, ConnectionString While Not rs.EOF Msg = Msg + CStr(rs.Fields(0).Value) + vbCrLf rs.MoveNext end MsgBox Msg D:\Cmg2000\AdoWsh.vbs Create an instance of - Instantiate the recordset object ConnectionString – reference to the ODBC DSN token or OleDb version (later) Sql – arbitrary, depends on support in driver Open – where the action occurs – where error handling should be… In absence of error handling a msgbox should pop up Standard VB Err object or Errors object attached to the Connection Object After open no error correction in samples

RDS Script - WSH Set rs = CreateObject("ADODB.Recordset") ConnectionString = “Provider=MS Remote;” + _ “Remote Server=http://ServerName;” + _ “Handler=MSDFMAP.Handler;”+ _ “Data Source=SasRemote” Sql = “Select PCTCPUTM from PDB.System“ rs.Open Sql, ConnectionString While Not rs.EOF Msg = Msg + CStr(rs.Fields(0).Value) + vbCrLf rs.MoveNext end MsgBox Msg D:\Cmg2000\RdsWsh.vbs Over inter/intranet – to some data source to which you don’t otherwise have access Internet – security considerations Use MS.Remote provider to go to Remote Server to access the DataSource defined to the MSDFMAP handler

ADO Script – Client-Side <HTML> <SCRIPT LANGUAGE=vbscript> Set rs = CreateObject("ADODB.Recordset") ConnectionString = "DSN=SasLocal“ Sql = “Select PCTCPUTM from PDB.System“ rs.Open Sql, ConnectionString While Not rs.EOF Msg = Msg + rs.Fields(0).Value + vbCrLf rs.MoveNext end MsgBox Msg </SCRIPT> </HTML> D:\Cmg2000\AdoClient.htm Same with RDS Client side or serve side script Options – server

ADO Script – Server-Side <HTML> <% Set rs = CreateObject("ADODB.Recordset") ConnectionString = "Data Source=SasLocal“ Sql = "Select PCTCPUTM from PDB.System“ rs.Open Sql, ConnectionString Response.Write("<SELECT>" + vbCrLf) While Not rs.EOF str = "<OPTION>" + CStr(rs.Fields(0).Value) + vbCrLf Response.Write(str) rs.MoveNext Wend http://.../AdoServer.asp %> </OPTION></SELECT> </HTML> Percent signs delimit script – otherwise pretty much the same thing we have been doing Can’t produce client msgbox on server If you don’t understand why chew on it and grab me during the week

ADO Script Options Access Type Script Method Access Method Local Machine WSH or Client-Side Any Client / Server RDS or OLE DB Intranet UNC Accessible Client-Side Internet Server-Side Don’t like this slide – Took a crack – need bigger matrix Asdf – unc on separate row Where is the data in relation to the clients Do the clients have the software to access the data Do the clients have a network connection to the data - Can you see it in Explorer Do the clients have a network connection to the server Firewall considerations not withstanding Local machine is like the samples Not all options * Most popular and where you should be to use ActiveX features to come

ActiveX Objects

ActiveX Objects COM subroutines Visible and not Microsoft and not ProgId (OWC.Spreadsheet) or ClassId “0002E510-0000-0000-C000-000000000046” Create them Read/write properties Call methods Handle events Component Object Model - Standard, OLE, VBX Small number of native objects - Anything more than a drop=down list then build it yourself from windows primatives, which was/is tedious API/Protocol exposes entry points to respond to prescribed calls Logon/iDispatch Ever coded, or familiar with the structure of a VTAM app, instantiate when you open the APPLID wait for events like logon exit 1982 – macro-level CICS in assembler- 3270 data streams or-ing bits into attribute bytes to protect and highlight fields Windows development was complex Instantiate and handle events Visible & not – TreeView To a large degree, What makes windows apps recognizable & intuitive GUID 32-byte globally unique Dll, OCX Drag n drop in VB and VID (Front Page?) both visual ActiveX controls (such as spin buttons) and nonvisual ActiveX components (such as database access objects). It's hard to find a significant Visual Basic program that doesn't make heavy use of premade reusable components that game we played in college, "i can write it in x lines", LISP and APL guys always won

ActiveX – No Script <HTML> <OBJECT HEIGHT=500 WIDTH=100% classid=clsid:C4D2D8E0-D1DD-11CE-940F-008029004347> </OBJECT> </HTML> D:\Cmg2000\NoScript.htm Development environment will ley you work with ProId, ClassIdd GUID otherwise Since we are all performance analysts…

ActiveX – Data Bound <HTML> <OBJECT id=grid height=600 width=100% classid=clsid:0ECD9B64-23AA-11D0-B351-00A0C9055D8E> </OBJECT> <SCRIPT LANGUAGE=vbscript> Set rs = CreateObject("ADODB.Recordset") Set cn = CreateObject("ADODB.Connection") cn.Open "Provider=sas.LocalProvider.1;Data Source=d:\PDB\“ rs.Open “System", cn, , , 512 'adCmdTableDirect set grid.DataSource = rs </SCRIPT> </HTML> D:\Cmg2000\DataBound.htm OLE DB MSHierarchicalFlexGridLib.MSHFlexGrid Paper samples are ODBC. html ~ script/dcf/gml

Microsoft Office Web Components

Office Web Components Ship with Office 2000 c:\Program Files\MicrosoftOffice\Office\MsOwc.dll Spreadsheet clsid:0002E510-0000-0000-C000-000000000046 ProgId = OWC.Spreadsheet Chart clsid:0002E500-0000-0000-C000-000000000046 ProgId = OWC.Chart Pivot Table - OWC.PivotTable DSC - OWC.DataSourceControl Pivot Table – Proc Summary – data reduction The Office Web Components are an option on the Office 2000 install. It is also possible to install them from a link on a web page by including a ASDF tag pointing to the OWC .cab file. You can place the OWC cab file on a share, and use the CODEBASE parameter in the object tag to automatically install the components for the user. Though, licensing requires that they are actually licensed to use Office 2000.

OWC Spreadsheet Resembles Excel spreadsheet Visible or not Contains one or more Worksheets Worksheets contain cells spreadsheet.worksheet.Cell(row,col) Single Worksheet then spreadsheet.Cell(row,col) OWC spreadsheet - it's the real thing – all the basic stuff The more you work with it the more that you find missing… Recalculation engine forecast, trend, correlation, regression… Copy columns or transfer the contents of an entire spreadsheet to an excel worksheet Hundreds of objects/methods/properties Invisible calculation engine – forecasting functions ..- but not word wrap (adjust height of columns Only sort by one column

OWC Spreadsheet Range Identifies a rectangular group of cells Used by methods that operate on groups of cells set Range = spreadsheet.Columns(x) object.Range(TopLeft : BottomRight) Single cell, row, column or anything you could select with mouse back in the early 80's it was RAMIS, now if it isn't in an Excel spreadsheet then it really doesn't exist

OWC Spreadsheet API ss.ActiveSheet.UsedRange.Clear ss.ViewableRange = ss.ActiveSheet.UsedRange.Address ExcelStyleCellReference = ss.Columns(Columns).Address Set c = ss.Constants Constants available at run-time rHeaders.HAlignment = c.ssHAlignCenter ss.ActiveSheet.Rows(FirstDataLine).Borders.Weight = owcLineWeightMedium Set Cell = ss.ActiveSheet.Cells Cell(y,x).Value = rs.Fields(x).Value

OWC Spreadsheet Formatting ss.TitleBar.Caption = “string" ss.Columns.ColumnWidth = 100 ss.Rows(x).Font.Bold = True range.NumberFormat = "hh:mm“ ss.Columns(x).Hidden = True ss.DisplayRowHeaders = False ss.ScreenUpdating = False ss.Rows(x).RowHeight = 55 ss.DisplayColHeaders = False

Populate Spreadsheet from RecordSet Row = 1 While Not rs.EOF Col = 1 While Col <= rs.Fields.Count ss.ActiveSheet.Cells(Row, Col).Value = rs.Fields(Col - 1).Value Col = Col + 1 Wend Row = Row + 1 rs.MoveNext Wend Assumes open RecordSet Check for null Inside loop iterates across columns of rs, inserting values in spreadsheet cells Outer loop walks down through rows Column headers from .Name Recall we did not have to do this with ole db and data bound grid control No null values

Populate Faster Set field = rs.Fields Set cell = ss.ActiveSheet.Cells Row = 1 While Not rs.EOF Col = 1 While Col <= rs.Fields.Count cell(Row, Col).Value = field(Col - 1).Name Col = Col + 1 Wend Row = Row + 1 rs.MoveNext Wend Indexes vs. subscripts in Cobol

OWC Chart General purpose charting functions 45 chart types ChartSpace - one or more charts Careful with terminology Series – points to be plotted as a group Value axis is vertical (y) Category axis is horizontal (x) Value axis scales nicely Category axis scaling is weak personally challenged by chart terminology, but then sas/graph gave me fits too Value scales nicely, category requires effort Series must be homogenous, Ive run afoul of this If you are comfortable with the construction of charts in excel…

Chart Types Column Bar Line Pie Scatter Bubble Area Doughnut Radar Stock Polar Clustered Stacked Stacked100 Markers Smooth Exploded Filled HLC OHLC Combo 45 defined

OWC Chart API Set cs.DataSource = ss.Object Chart data will come from spreadsheet Set chart = cs.Charts.Add() Add a chart to the chart space cs.Clear Clear all charts in the chart space Set c = cs.Constants Constants available at run-time Chart can be linked to different data sources, at the same time ADO RecordSet Array in memory

OWC Chart - Formatting chart.Type = c.chChartTypeLine Basic chart type – 46 varieties chart.HasLegend = True Chart will have legend chart.HasTitle = True Chart will have title chart.Title.Caption = “C1” Take title from cell C1 in spreadsheet

OWC Chart - SetData Method used to identify series 1) Dimension or attribute of chart 2) Data source 3) Data Reference chart.SetData c.chDimSeriesNames, 0, “A2“ Variable name that will appear in legend chart.SetData c.chDimValues, 0, “C2:C4“ Cells containing value (y) axis data points chart.SetData c.chDimCategories, 0, “B2:B4” Cells with category (x) axis data points Define a series

OWC Chart Series

OWC Chart Series A B C 1 Process StarTime PctCpuTm 2 InetInfo 01:00 30 02:00 20 4 03:00 25

Chart from Spreadsheet set cs.DataSource = ss.Object Set chart = cs.Charts.Add() Set c = cs.Constants chart.Type = c. chChartTypeColumnClustered chart.HasLegend = True chart.SetData c.chDimSeriesNames, 0, “A2“ chart.SetData c.chDimValues, 0, “C2:C4“ chart.SetData c.chDimCategories, 0, “B2:B4"

References Programming Microsoft Office 2000 Web Components By Dave Stearns Microsoft Press Personally, not the best reference for beginners

References SAS ODBC User’s Guide and Programmer’s Reference, SAS Institute Microsoft Developer Network Library (MSDN) Microsoft TechNet MSNews.Microsoft.com newsgroups Public.Data.ADO.RDS Public.Office.Developer.Web.Components http://www.Able-Consulting.com/ Carl Prothman

SasToOwc.htm – Sample App D:\Cmg2000\SasToOwc.htm

Issues Much of this is Windows-only technolgy Un-terminated character strings when accessing SAS ODBC data sources through RDS Netscape Navigator 4.5 does not natively support COM controls

Summary i'm not going to stand here and tell you this was all a piece of cake. It took me a long to\ime to get this all to work - and that's precicely why I decided to write it up. It is frought with all the problems you would expect when learning what mey be new languages, developement environments, and/or architecutres. Hopefully the descriptions, explanations, and code snippets and downloads will allow you to get something up and running without much effort and give you enough understanding to be able to taylor it to your needs C GChart Lots of other ways to to this – Discussed here this year (Arron on Thursday) and in the past Complexity – no harder than learning how to do the Data step coding and Proc Gchart Only scratched the surface … power and flexibility of these power