How to Open() nur bestimmte Spalten<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo, wenn ich eine große JMP-Datentabelle habe, gibt es eine Möglichkeit, eine Nachricht an Open() zu senden, die nur in bestimmten Spalten geladen wird?Dies würde die Dateiladezeit 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 brauche möglicherweise Zugriff auf alle, aber im Moment muss ich nur eine Spalte "Apple" laden, wodurch die Ladezeit der Datei verkürzt wird.Das Ausführen eines nachfolgenden Subset() verfehlt den Zweck, 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 erforderlichen Spalten geladen werden.Ich hatte gehofft, dass etwas wie das Folgende funktionieren würde, was natürlich nicht funktioniert:
Open("c:\temp\fruit.jmp",columns("Apple"));
Anregungen?danke... dj
How to Open() nur bestimmte SpaltenOk, ich glaube, ich habe das vielleicht herausgefunden.Irgendwann habe ich einen hilfreichen Beitrag aus der Vergangenheit gefunden.Ich habe alle Open()-Attribute im Skriptleitfaden durchsucht, und es gibt keine Möglichkeit, dies zu tun, ohne stattdessen den Befehl Open Database() zu verwenden.Grundsätzlich müssen Sie nur die Quell-.jmp-Datei zuerst in eine .xls-Datei konvertieren.Wollte das nur posten, falls es jemandem weiterhilft.dj
http://communities.sas.com/message/50379#50379
Also konvertiere ich zuerst die "fruit.jmp" in eine "fruit.xls".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 hat ein Arbeitsblatt "Sheet1" und darin eine Spalte namens "Apple", und ich möchte nur diese Spalte und keine der anderen in dieses Arbeitsblatt laden, um Zeit zu sparen.Dieser Code unten macht den Trick:
dt=Open Database("DSN=Excel Files;DBQ=c:\temp\fruit.xls;DriverId=790;MaxBufferSize=2048;PageTimeout=5;","SELECT Apple FROM `Sheet1$`" , "Fruit Table" );