|
|
Co to jest SAS/ACCESS?
SAS/ACCESS to zestaw modułów SAS pozwalających na czytanie danych z plików pochodzących od innych producentów i wykorzystywanie tych plików jako danych wejściowych dla programów SAS. Moduły SAS/ACCESS umożliwiają również zapisywanie danych wynikowych do plików innych producentów.
Podstawowe mechanizmy dostępu do danych, które wspiera SAS/ACCESS to:
- Polecenie LIBNAME
- Procedury Import/Export
- Procedury Access i DBLoad
- Mechanizm Pass-Through
|

|
|
|
Jakie ACCESS-y można wyróżnić?
Najczęściej stosowane moduły SAS/ACCESS to:
|

|
|
|
Co to jest SAS/ACCESS Interface to PC Files??
SAS/ACCESS Interface to PC Files jest licencjonowanym modułem, który umożliwia dostęp w trybie zapisu i odczytu do danych w popularnych formatach biurowych takich jak MS EXCEL, MS ACCESS, Lotus czy dBase (pełna lista na stronie).
Bez licencji na SAS/ACCESS Interface to PC Files dostęp ograniczony jest do plików tekstowych (CSV, TXT) oraz - począwszy od wersji 9.2 M3 - do plików JMP.
|

|
|
|
Co to jest PC Files Server?
PC Files Server jest dodatkową aplikacją, która pozwala na udostępnianie plików w formatach biurowych dla systemów SAS działających na różnych systemach operacyjnych (Windows 32-bit, Windows 64-bit, UNIX, Linux). PC Files Server uruchamia się w środowisku Windows (zarówno 32-bit jak i 64-bit).
Dobrym opisem działania PC File Servera jest artykuł.
|

|
|
|
Czy można importować pliki MS Excel 2007/2010?
Wraz z wersją EG 4.2 pojawiła się możliwość importu arkuszy Microsoft Excel 2007/2010 posiadających rozszerzenie XLSX. Poprzez użycie narzędzia do importowania danych (Plik-> Importuj Dane) domyślnie wykorzystywany jest do tego silnik MS Jet. Możemy również skorzystać z SAS/Access Interface to PC Files używając ustawienia w EG o nazwie "Jeżeli tylko można, importuj dane za pomocą SAS/ACCESS Interface to PC Files". Opcja ta jest niedostępna dla systemów 64-bitowych. Oprócz tego istnieje możliwość importowania plików XLSX za pomocą procedury proc import używając odpowiedniego engine'u w tym wypadku EXCELCS lub EXCEL. Np.:
Dla systemów 64-bitowych:
Filename testy "Ścieżka do pliku, który chcemy wczytać";
PROC IMPORT
DATAFILE=testy
OUT=work.wynik
dbms=excelsc replace;
quit;
Dla systemów 32-bitowych:
Filename testy "Ścieżka do pliku, który chcemy wczytać";
PROC IMPORT
DATAFILE=testy
OUT=work.wynik
dbms=excel replace;
quit;
|

|
|
|
Czy można eksportować pliki MS Excel 2007/2010?
O ile SAS Enterprise Guide może wyeksportować plik w formacie .XLS, o tyle nie radzi sobie z eksportem do natywnego formatu .XLSX. W SAS 9.2 z pomocą przychodzi PROC EXPORT, lub mechanizm LIBNAME excel/excelcs. Użycie PROC EXPORT wiąże się z napisaniem własnego programu SAS. Zarówno PROC EXPORT jak i mechanizmu LIBNAME wymagają zainstalowanego SAS/ACCESS Interface to PC Files.
Przykład wykorzystania mechanizmu libname:
Dla systemów 32-bitowych
libname test excel " Ścieżka do pliku xlsx." ;
Dla systemów 64-bitowych
libname test excelcs " Ścieżka do pliku xlsx.";
Dalej zapis do biblioteki odbywa się już tak samo:
data test.class;
set sashelp.class;
run;
Przykład wykorzystania Proc Export:
Dla systemów 32-bitowych
PROC EXPORT
DATA=sashelp.class
DBMS=EXCEL
OUTFILE= " Ścieżka do pliku xlsx."
REPLACE;
run;
Dla systemów 64-bitowych
PROC EXPORT
DATA= sashelp.class
DBMS=EXCELCS
OUTFILE=" Ścieżka do pliku xlsx."
REPLACE;
run;
Dokładniej na ten temat, wraz z wyszczególnionymi engine'ami:
PC Files reference - Proc Export Statement
|

|
|
|
Jak wyeksportować pliki MS Excel 2007/2010 bez pisania kodu?
SAS R&D stworzyło tzw. 'custom task', który współpracuje tylko z EG 4.3. W tym wypadku SAS/ACCESS Interface to PC Files nie jest wymagany.
'Custom task' możemy pobrać pod tym adresem:
Export to Microsoft Excel 2007/2010 Custom Add-In Task
Opis można znaleźć w nocie:
Problem Note 41132>
|

|
|
|
Co to jest Dynamic Data Exchange (DDE)?
Protokół, który pozwala aplikacjom komunikować się ze sobą w taki sposób, że gdy zawartość dokumentu utworzonego w jakiejś aplikacji (np. edytorze tekstów lub arkuszu kalkulacyjnym) zostaje zmodyfikowana, automatycznie ulega modyfikacji inny dokument, do którego jest dołączony ten pierwszy. Typowym zastosowaniem DDE jest aktualizacja dokumentu tekstowego, gdy zmieniła się zawartość arkusza kalkulacyjnego dołączonego do tego dokumentu.
|

|
|
|
Jakie są wymogi korzystania z DDE?
Jedynym wymogiem, aby móc korzystać z DDE w Systemie SAS, jest posiadanie SAS Base oraz platformy Windows. DDE jest niewspierane w SAS Enterprise Guide.
|

|
|
|
SAS/ACCESS Interface to PC Files a Unix
Od wersji SAS 9.1.3 SP 3 SAS/ACCESS Interface to PC Files na systemach z rodziny Unix wspiera PROC IMPORT i EXPORT bez potrzeby posiadania PC Files Servera na maszynie, na której znajdują się pliki. Dzięki tej funkcjonalności możemy używać obydwu procedur do pracy z plikami Excel na wszystkich wspieranych Unix'ach bez potrzeby przechodzenia przez PC Files Server np.:
Dla systemów 32-bitowych
PROC EXPORT
DATA=sashelp.class
DBMS=EXCEL
OUTFILE= " Ścieżka do pliku xlsx."
REPLACE;
run;
Dla systemów 64-bitowych
PROC EXPORT
DATA= sashelp.class
DBMS=EXCELCS
OUTFILE=" Ścieżka do pliku xlsx."
REPLACE;
run;
Dostęp do PC Files (np. .xls, xlsx) znajdujących się na PC z poziomu Unixa wymaga, aby serwer Unix miał do nich dostęp przy użyciu mechanizmu Samba lub via FTP, bądź innego rozwiązania działającego na podobnej zasadzie.
Pewnym nieznacznym ograniczeniem dla osób korzystających z wcześniejszych wersji SAS niż 9.2 i serwerów Unix może okazać się brak możliwości skorzystania z opcji SHEET= w przypadku importu pliku Excel'owego. Od wersji 9.2 ta opcja jest już dostępna. W systemach 64 bitowych wymagany jest PC Files Server. Warto również dodać, że SAS/ACCESS Interface to PC File Formats nie pozwala na bezpośredni dostęp za pomocą import/export do bazy Microsoft Access. Ta funkcjonalność wymaga zainstalowania PC Files Servera.
|

|
|
|
SAS/ACCESS Interface to PC Files a Windows 64-bitowy
Wprawdzie na platformie Windows 64-bit Itanium są wspierane te same formaty plików, co na wersji 32-bitowej (np.: DBF, WKn, JMP, SPSS, Stata itd.), ale istnieje jeden wyjątek. Nie są wpierane formaty korzystające z MS Jet Data Provider. Przyczyną tego ograniczenia jest fakt, że MS Jet provider jest 32-bitowy (Microsoft nie planuje stworzenia wersji 64-bitowej). W związku z tym nie możemy skorzystać z Libname Engine dla MS Excel i MS Access. Zamiast tego możemy użyć PROC IMPORT/EXPORT (jednakże nie jest to możliwe z plikami xlsx).
Co zrobić, jeśli jednak bardzo chcemy skorzystać z silników Libname?
Rozwiązaniem dla MS Access i Excel na platformach opartych o IA-64 i AMD-64 jest zastosowanie PC Files Servera. Użytkownik musi posiadać zainstalowany SAS/ACCESS Interface to PC Files na maszynie z 64-bitowym Windowsem i PC Files Server na maszynie, na której znajduje się MS Access i Excel. Jeżeli Excel i Access są zainstalowane na 64-bitowej maszynie, wówczas PC Files Server może znajdować się na tym samym 64-bitowym PC z SAS-em 64-bitowym jako klientem. Kiedy używamy PC Files Server z plikami Excel, wartość opcji DBMS= musi być ustawiona na EXCELCS. W przypadku MS Access będzie to ACCESSCS.
PROC EXPORT
DATA= sashelp.class
DBMS=EXCELCS
OUTFILE=" Ścieżka do pliku xlsx."
REPLACE;
run;
W sytuacji, kiedy nie musimy używać wyrażenia Libname, ani nie mamy zamiaru importować plików wprowadzonych w Office 2007 (xlsx, xlsm, xlsb) bądź plików MS Access, wówczas możemy zdecydować się na inny silnik 64-bitowy - XLS. Jego zaletą jest to, że nie wymaga PC Files Servera.
Filename testy "Ścieżka do pliku, który chcemy wczytać";
PROC IMPORT
DATAFILE=testy
OUT=work.wynik
dbms=excel replace;
quit;
Więcej na temat engine i ich dostępności tutaj:
Supported Data Sources and Environments
|

|
|
|
Jaka powinna być wersja PC Files Servera?
Wersja PC Files Server musi pokrywać się z wersją Systemu SAS (z dokładnością do numeru maintenance).
|

|
|
Data ostatniej aktualizacji dokumentu: 02.06.2011
|