So öffnen Sie() nur bestimmte SpaltenHallo, wenn ich eine große JMP-Datentabelle habe, gibt es eine Möglichkeit, eine Nachricht an Open() zu senden, die nur in bestimmte Spalten geladen wird? Dies würde die Ladezeit für eine große Datei erheblich verkürzen. Wenn ich zum Beispiel diese Datei habe:
Open("c:\temp\fruit.jmp");
Nehmen wir an, „fruit.jmp“ enthält 200 Spalten mit verschiedenen Fruchtarten und ich benötige möglicherweise Zugriff auf alle davon, aber im Moment muss ich nur eine Spalte „Apple“ laden, wodurch die Ladezeit der Datei verkürzt wird. Das Ausführen eines nachfolgenden Subset() macht den Zweck zunichte, da die große Datendatei zuerst geöffnet werden muss und das Ziel hier darin besteht, die Ladezeiten der Datei zu verkürzen, indem nur die benötigten Spalten geladen werden. Ich hatte gehofft, dass so etwas wie das Folgende funktionieren würde, was natürlich nicht der Fall ist:
Open("c:\temp\fruit.jmp",columns("Apple"));
Vorschläge? Danke... DJ
So öffnen Sie() nur bestimmte SpaltenOk, ich denke, ich habe das vielleicht herausgefunden. Irgendwann habe ich einen hilfreichen Beitrag aus der Vergangenheit gefunden. Ich habe alle Open()-Attribute im Skripthandbuch durchsucht und es gibt keine Möglichkeit, dies zu tun, ohne stattdessen den Befehl „Open Database()“ zu verwenden. Grundsätzlich müssen Sie zunächst nur die .jmp-Quelldatei in eine .xls-Datei konvertieren. Ich wollte das nur posten, falls es jemand anderem weiterhilft. DJ
http://communities.sas.com/message/50379#50379
Also wandle ich zuerst die „fruit.jmp“ in eine „fruit.xls“ um. Auf diese Weise kann JSL die Excel-ODBC-DSN-Verbindung und ein wenig SQL-Code verwenden, um nur die Spalte(n) abzurufen, die ich benötige. Nehmen wir also an, meine Excel-Datentabelle enthält ein Arbeitsblatt „Sheet1“ und darin eine Spalte namens „Apple“, und ich möchte nur diese Spalte und keine der anderen in diesem Arbeitsblatt laden, um Zeit zu sparen. Der folgende Code erledigt den Zweck:
dt=Open Database("DSN=Excel Files;DBQ=c:\temp\fruit.xls;DriverId=790;MaxBufferSize=2048;PageTimeout=5;","SELECT Apple FROM `Sheet1$`" , "Fruit Table" );