티스토리 뷰

TestStand에서 MSSQL 접속하여 데이터를 가져오기


TestStand 기반에서 Database와 연동을 하여 데이터를 가져오거나, 저장을 할 수 있습니다. 하지만 TestStand에서 기본적으로 제공하는 예제는 MS Access에 대한 예제만을 제공하여 Access가 아닌 MSSQL, MySQL에 대한 자료가 부족한 실정입니다.


기존의 예제의 위치는 다음과 같습니다.

C:\Users\Public\Documents\National Instruments\TestStand 2013\Examples\Database


MSSQL 시 접속에 대한 문제가 발생을 한다고 하여, 이에 대한 솔루션을 제공하고자 직접 한번 테스트를 진행해 보았습니다. 


문제는 Select 문을 실행하였을 때 아래와 같은 에러창이 뜹니다. 에러 코드가 -15번이긴 하지만 User-Defined Error 코드이기 때문에 NI 홈페이지 등 관련 자료에서는 명확한 솔루션을 찾을 수가 없습니다. 



Access 기반으로 된 예제 돌렸을때는 문제가 없으나, MSSQL 사용시 위와 같은 에러가 발생을 하므로 MSSQL과 TestStand에서의 문제가 있지 않을까라고 판단을 했고, 이에 대한 부분을 해결하고자 여러 방안으로 접근을 해보았으나 딱히 솔루션이 없어 직접 테스트를 진행하였습니다.


TestStand에서 MSSQL을 사용하는 방법에 대해서 설명을 드리도록 하겠습니다. 


먼저 Access와 MSSQL을 접속하는 방식이 다르므로 먼저 Access기반으로 된 접속 방식을 TestStand에서 변경해 주셔야 합니다. 데이터 베이스 설정은 Configure – Result Processing에서 진행할 수 있습니다. 




데이터 베이스 접속 부분에 대한 옵션 창에서 Build 버튼을 눌러 데이터 연결 속성을 SQL 서버와 관련된 공급자로 변경을 합니다.


 

다음을 눌러서 연결하고 자는 서버의 이름과 로그인 정보를 입력한 뒤 테스트를 누릅니다.


 


DB 접속이 문제가 없으면 연결 테스트 성공이라는 창이 뜹니다. 이 창이 뜨게 되면 DB를 접속하는데 별다른 문제없이 프로그래밍을 할 수가 있습니다. 


 


위와 같이 설정을 하시고 확인을 누르게 되면 SQL 서버에 접속을 하는 연결 명령어가 생성이 되게 됩니다. 이부분을 복사하셔서 코드상에서 Open Connection하는 데 넣으시면 됩니다. 


 


아래는 실질적인 코드상에서 설정한 그림입니다. 


 


Access 관련 예제를 가지고 와서 아래와 같이 수정을 해보았습니다.


  

userTbl이라는 테이블로부터 Select 쿼리를 진행합니다. userTbl은 5개의 컬럼을 가진 테이블로 아래와 같은 값을 가지고 있습니다. 



Sqeuence 상에서 Get Value라 적혀있는 부분이 실행되면서 DB로부터 Return 되는 값은 ColumnList 변수가 있는데 이 부분이 DB로부터 받아온 값을 가져오는 부분입니다.


위의 테이블은 5개의 열의 데이터를 전부 가져오니 5개의 Column에 대한 값을 DB의 데이터 타입에 맞게끔 맞춰야 합니다. (Select * from userTbl을 통해서 5개 데이터 모두 가져와서 5이고, 3개만 가져온다면 3으로 만드시면 됩니다.) ColumnList의 크기는 5개가 되면 됩니다. 



첫 번째 컬럼에 대한 값을 예로 들어보겠습니다. ColumnName에는 DB의 Column이름을, 그리고 Data 부분에는 Locals에 생성한 문자열 변수 이름을 넣습니다. 이 예제에서는 Locals에도 동일하게 UserName이라는 변수를 만들어 놓았습니다.



 5개의 값을 전부 맞추었다면 실행을 진행하시면 됩니다. 실행을 하시면 Watch View 부분에서 실질적으로 DB의 값이 올라오는 것을 확인 할 수 있습니다. 


 


데이터 Insert도 테스트 해보았으나 문제가 없었습니다. 결론은 MSSQL과 TestStand의 연동에는 별다른 문제가 없다는 것이 저의 의견입니다.


이 글이 도움이 되셨나요?

그렇다면 아래의 그림을 클릭해주세요.



댓글