Come aprire() solo colonne specificheSalve, se ho una tabella dati JMP di grandi dimensioni, esiste un modo per inviare un messaggio a Open() che viene caricato solo in colonne specifiche? Ciò ridurrebbe notevolmente il tempo di caricamento del file per un file di grandi dimensioni. Ad esempio se ho questo file:
Open("c:\temp\frutta.jmp");
Diciamo che fruit.jmp contiene 200 colonne di diversi tipi di frutta e potrei aver bisogno di accedere a tutte queste, ma per il momento ho solo bisogno di caricare in una colonna "Apple" riducendo così il tempo di caricamento del file. L'esecuzione di un Subset() successivo vanifica lo scopo, poiché è necessario aprire prima il file di dati di grandi dimensioni e l'obiettivo qui è ridurre i tempi di caricamento del file caricando solo le colonne necessarie. Speravo che qualcosa del genere funzionasse, il che ovviamente non funziona:
Open("c:\temp\fruit.jmp",colonne("Apple"));
suggerimenti? grazie... DJ
Come aprire() solo colonne specificheOk, penso di averlo capito. Alla fine ho trovato un post utile del passato. Ho cercato tutti gli attributi Open() nella guida agli script e non c'è modo di farlo senza utilizzare invece il comando Open Database(). Fondamentalmente, è sufficiente prima convertire il file .jmp sorgente in un file .xls. Volevo solo postarlo nel caso possa aiutare qualcun altro. DJ
http://communities.sas.com/message/50379#50379
Quindi per prima cosa converto "fruit.jmp" in "fruit.xls". In questo modo posso fare in modo che JSL utilizzi la connessione DSN ODBC di Excel e un po' di codice SQL per estrarre solo le colonne di cui ho bisogno. Quindi diciamo che la mia tabella dati Excel ha un foglio di lavoro "Foglio1" e al suo interno una colonna chiamata "Apple" e voglio caricare solo questa colonna e nessuna delle altre in questo foglio di lavoro per risparmiare tempo. Questo codice qui sotto fa il trucco:
dt=Open Database("DSN=File Excel;DBQ=c:\temp\fruit.xls;DriverId=790;MaxBufferSize=2048;PageTimeout=5;","SELECT Apple FROM `Sheet1$`" , "Tabella Frutta" );