[ ◎ dataset에 자료 조회 시 주의 사항 ]
☞ |
|
* 자료 조회 후 주의 사항 1. 조회할 때 Ds 순서 var strOutputDs = "dsAAAA=ds_ouput0 dsBBBB=ds_ouput1 dsCCC=ds_output2";
2. 자료 조회 gfn_transaction();
3. gfn_callback()에서 이슈 (3개의 ds에는 자료가 존재 한다는 조건하에서) 1. 상황 a. 조회할때 ds 순서에 주의 해야 된다. b. 자료가 조회 된 후 각 ds는 rowchanged() event가 발생한다. c. 이때 dsAAAA의 rowchanged() event가 발생 할때 dsBBBB는 아직 자료가 setting이 안될 수 있다. d. 그래서, 분명히 자료는 db에서 가져 왔는데 dsBBBB는 자료가 없다고 나온다. e. dsAAAA의 rowchanged() event에서 dsBBBB의 값이 존재 하는지 묻거나, 가져다 사용할려고 할때 없다고 나온다.
2. 이유 a. 분명히 3개의 서버에서 3개의 ds에서 자료를 적용하려고 select했고 server단에서 client단으로 자료는 넘겼다. b. 그리고, client단에서 자료를 받을때 c. 맨 먼저 strOutputDs 에 적용된 순서대로 자료는 ds에 setting 되게 된다. d. 그래서, dsAAAA 에 자료를 맨 먼저 setting하게 되는데 이때 rowchanged() event가 발생하게 된다. 문제는 이때 dsBBBB에 자료는 아직 server에서 가져온 자료가 넣기 전이다. e. 그래서 dsAAAA의 rowchanged() event가 발생 할 때 dsBBBB의 값을 참조하려고 하면 값이 없다고 나온다.
3. 해결방법 a. 조회 전 dsBBBB는 먼저 조회할 수 있도록 앞쪽에 위치 시킨다. b. var strOutputDs = "dsBBBB=ds_ouput0 dsAAAA=ds_ouput1 dsCCC=ds_output2"; c. 위 와 같이 할 경우 dsBBBB자료를 먼저 setting후 dsAAAA의 자료를 setting한다. d. 그래서 dsAAAA의 rowchanged() event가 발생할 때 이미 dsBBBB의 자료는 존재 하게 된다. |
☞ |
|
|