Contents
Acknowledgments ix
Introduction xi
Chapter 1 Accessing SAS Data without Using SAS Code 1
1.1 Abstract 2
1.2 Introduction 2
1.3 ODBC 2
1.3.1 Setting Up a SAS Server for the SAS ODBC Driver 3
1.3.2 Microsoft Access 2000 8
1.3.3 Microsoft Excel 2000 17
1.3.4 Visual Basic 6.0 22
1.3.5 Lotus Approach Version 9 26
1.3.6 OpenOffice.org 2.1 27
1.4 Dynamic Data
Exchange 43
1.4.1 Visual Basic 6.0 45
1.5 SAS Integration
Technologies 45
1.5.1 Visual Basic 6.0 46
1.5.2 LotusScript Version 9 54
1.5.3 OpenOffice.org 2.1 55
1.6 Conclusions 59
1.7 Recommended
Reading 59
Chapter 2 Out of Space with SAS Software? 61
2.1 Abstract 62
2.2 Introduction 63
2.3 Space Allocation
under z/OS 63
2.3.1 Reallocation of Space under z/OS 64
2.3.2 Common z/OS Disk Space Errors 65
2.4 Saving Permanent
Disk Space 65
2.4.1 Creating a SAS
Data Set (All Platforms) 65
2.4.2 Replacing a SAS
Data Set (All Platforms) 66
2.4.3 Appending to a SAS Data Set (All Platforms) 66
2.4.4 Inserting and Deleting Observations (All Platforms) 67
2.5 Saving Temporary
Disk Space 68
2.5.1 Creating
Multiple SAS Data Sets in the Same Data Step
(All Platforms) 68
2.5.2 WORK Allocation 68
2.5.3 SortWork Allocation 69
2.5.4 WORK and SortWork Allocation in Batch 69
2.5.5 Virtual Disk Space 70
2.5.6 Reusing WORK
Data Set Names and Other Housekeeping
(All Platforms) 70
2.6 General Disk Space
Economies 71
2.6.1 Tape Format SAS Data Sets 71
2.6.2 Transport Format SAS Data Sets (All Platforms) 72
2.6.3 XPORT Engine Files (All Platforms) 72
2.6.4 PROC CPORT and
PROC CIMPORT Files
(All Platforms) 73
2.6.5 Releasing Unused Space in a SAS Data Library 73
2.6.6 Compression (All Platforms) 74
2.7
Recommendations 78
2.7.1 All Platforms 78
2.7.2 z/OS Mainframe Specific 78
2.8 Recommended Reading 78
Chapter 3 Why Does My Job Run So Slowly? 79
3.1 Abstract 80
3.2 Introduction to
SAS/ACCESS Software 80
3.2.1 Access
Descriptors versus Pass‑Through SQL versus
DB2 Libname Statements 80
3.3 PROC SQL 82
3.3.1 Processing Data in DB2 or in SAS? 83
3.4 Summary of
Results 94
3.4.1 Summarizing Rows in a DB2 Table 94
3.4.2 Combining DB2 Tables Using Inner Join or Left Join 94
3.4.3 Selecting Rows
from a SAS Data Set
Using Another SAS Data Set 95
3.4.4 The Effects of
Sorting with z/OS DFSORT 95
3.5 Converting
SAS/ACCESS View Descriptors to SQL Views 98
3.6 Recommendations 98
3.7 Recommended Reading 99
Chapter 4 Distributing SAS/GRAPH Reports 101
4.1 Abstract 102
4.2 Introduction 102
4.3 GIF, JPEG, Bitmap, and Other Graphics File Formats 105
4.4 The HTML and WEBFRAME Graphics Devices 106
4.5 The ACTIVEX and
JAVA Graphics Devices 108
4.5.1 SAS/GRAPH
ActiveX Control 109
4.5.2 SAS/GRAPH Java
Applets 111
4.6 The SAS
Metagraphics Data Devices 113
4.7 Creating Drill‑Down
Graphs 116
4.7.1 HTML and
WEBFRAME Device Drivers 116
4.7.2 SAS Metagraphics
Data Device Drivers 119
4.8 Summary 124
4.9 Recommended
Reading 129
Chapter 5 Importing Data
from and Exporting Data to
Databases without
SAS/ACCESS 131
5.1 Abstract 132
5.2 Introduction 132
5.3 Access to Live
Database Data 133
5.4 Access to Database
Extracts 134
5.4.1 Delimited Flat
Files 134
5.4.2 Fixed‑Column
Data 136
5.4.3 Fixed‑Block
Data 137
5.4.4 Reading All Data
as Text 138
5.4.5 Converting Data
between z/OS and Other Platforms 139
5.4.6 Accessing Data
in Spreadsheets 142
5.4.7 DDE (Windows
Only) 142
5.4.8 OLE (Windows
Only) 143
5.4.9 Reading
Spreadsheet Files as Raw Data (Windows, Linux,
and UNIX) 160
5.5 Writing Data to
Compatible Files for Spreadsheets 168
5.5.1 Delimited Flat
Files 168
5.5.2 HTML Files 171
5.6 Converting Date
and Time Formats 173
5.7 Summary 179
5.7.1 Importing 179
5.7.2 Exporting 180
5.8 Recommended
Reading 180
Chapter 6 Developing
SAS Applications Using
SAS
6.1 Abstract 182
6.2 Introduction to
SAS
6.2.1 What Is SAS
Enterprise Guide? 183
6.2.2 Limitations of
SAS
6.2.3 User
Interface 185
6.2.4 Tasks 189
6.2.5 Traditional
Programming 191
6.3 Hints and Tips for
SAS
6.3.1 Accessing Local
SAS Installations 192
6.3.2 Accessing Server‑Based
SAS Installations 192
6.3.3 Why You Cannot
Use Autoexec.sas 193
6.3.4 Why Do Platform‑Specific
System Commands Fail? 194
6.3.5 Changing the
Current Directory 195
6.4 Hints and Tips for
SAS
6.4.1 Installing SAS
6.4.2 Using the Add‑In
Manager to Remove a Custom
Task 198
6.4.3 Generating SAS
Code Using SAS
Tasks 203
6.4.4 Scheduling Batch
SAS Processes 203
6.4.5 Linux or UNIX
Remote Servers 205
6.5 Introducing SAS
A Case Study 207
6.5.1 Environment 207
6.5.2 User
Training 209
6.5.3 User
Perception 210
6.5.4 Conclusions 211
6.5.5 What Happened
Next 211
6.6 Recommended
Reading 212
Index 213