JSL 스크립트에서 SQL 및 JMP 문자열을 사용하여 데이터 가져오기안녕하세요 여러분.
JSL 스크립트에서 SQL을 사용하여 특정 데이터베이스에 액세스하고 있습니다.
원하는 데이터를 가져오려면 사양을 제공해야 합니다.
사양은 JMP/JSL의 목록이나 행렬 형식으로 제공됩니다.
단일 항목 이름을 수동으로 입력하면 작동합니다. =>
/* Fetch Single Items from Database*/
A = Open Database("Server Specs", "SELECT * FROM CertainFolder a WHERE a.CertainColumn IN ('A','B','C','D')");그러나 항목이 수천 개가 될 수 있으므로 항목 목록(또는 행렬)을 나타내는 단일 이름을 사용하는 방법을 찾아야 합니다.
물론 이 방법은 작동하지 않습니다. =>
/* Fetch Data from Data Table*/
Items_M = :Items << get as matrix();
/* Fetch Data from Database*/
A = Open Database("Server Specs", "SELECT * FROM CertainFolder a WHERE a.CertainColumn IN ('^Items_M^')");이것은 가장 단순한 이것을 하는 방법?
감사합니다!
데이터 접근Re: JSL 스크립트에서 SQL 및 JMP 문자열을 사용하여 데이터 가져오기감사해요!
이것도 잘 작동합니다. 그리고 그것은 매우 유용합니다!
최상의,
발레리오
Re: JSL 스크립트에서 SQL 및 JMP 문자열을 사용하여 데이터 가져오기예제를 사용하여 변경했습니다. 항목 연결 목록을 쉼표로 구분된 문자열로 변환하는 작업을 수행하는 함수입니다. 귀하의 코드는 ^^ 삽입을 수행하는 현명한 방법이지만, 평가 삽입 기능.
Re: JSL 스크립트에서 SQL 및 JMP 문자열을 사용하여 데이터 가져오기제가 보통 하는 방법은 다음과 같습니다.
- 고유한 열 값 목록 작성
- 해당 목록을 SQL에 입력
- 데이터베이스에서 새 테이블로 데이터를 다시 가져옵니다.
지금까지 나는 이 작업을 수행하는 가장 간단한 방법을 알고 있으며 이를 많이 사용합니다.
빠르게 사용할 수 있도록 메뉴에 이를 구현했습니다.
// take unique values from the column :items
dt = open("$SAMPLE_DATA\Big Class.jmp");
summarize( Current Data Table(), item_lst = by( :NAME /* :item */ ) );
// show list
show(item_lst);
// prepare list for sql
item_lst_str=substitute (char(item_lst),"{","(","}",")","\!"","'");
// open SQL Query with inserted item_lst
New SQL Query(
Connection(
"ODBC:DSN=DSN_NAME;UID=user;DBQ=database;" // connection string to be modified
),
QueryName( "ITEMS_Query" ),
CustomSQL( eval insert("SELECT * from database_table dt where dt.item in ^item_lst_str^;") )
) << modify;
// or directly run if neccessary
// ) << Run;Re: JSL 스크립트에서 SQL 및 JMP 문자열을 사용하여 데이터 가져오기매우 감사합니다!
그게 내가 찾던 거였어... 데이터베이스에 대한 액세스가 불안정했기 때문에 주말에는 작동하지 않았습니다.
다시 한 번 감사드립니다.
Re: JSL 스크립트에서 SQL 및 JMP 문자열을 사용하여 데이터 가져오기나는 말할 수 없다, 무엇인가? 가장 단순한 , 하지만 이것이 제가 하는 방법입니다:
// for test purposes
lstItems = {"A","B","C","D"};
// build a comma separated list
strItems = ConcatItems(lstItems,",");
/* Fetch Data from Database*/
eval(parse(evalinsert("\[
A = Open Database("Server Specs", "SELECT * FROM CertainFolder a WHERE a.CertainColumn IN (^strItems^)")
]\")));;