안녕하세요. 이번에 C# 닷넷을 이용해서 서버를 개발하게된 사람 입니다.
다름이 아니라 VIEW에 대해 질문이 있어서 글을 올리게 되었습니다.
원래는 PHP쪽 개발을 하면서 php 자체에 쿼리문을 넣는 방식을 사용해 주로 개발을 했었습니다. (db는 mysql )
예) $mysqli->query("SELECT * FROM `test_table`");
그러던 것이 c#을 사용하게 되면서 저장 프로시저라는 기존에 사용하지 않던 개념을 사용하게 되었고
확정된 것은 아니지만 계속해서 지식을 쌓고 있는 중 입니다.
한가지 문제가 된것은 저장 프로시저는 sql 프로그램 내부에서는 exec를 통한 select 문의 결과가 출력이 되지만
c# 쪽으로 반환시킬 수 있는것은 오로지 숫자 밖에 없다는 것이었고
결국 저장 프로시저로써는 insert delete update 에 관한 수행 결과만을 반환 시킬수 있다는 것 이었습니다.
그래서 눈을 돌리게 된것이 view 라고 하는 것 이었는데 가상 테이블 생성을 할 수 있으며 자주쓰는 쿼리들을 미리 지정해 두거나
전체 테이블을 공개하지 않고 테이블의 일부만을 공개할 때 사용하는 것 이라고 이해 했습니다.
하지만 이것도 결국에는 미리 정해진 쿼리만을 출력해 주는 것이지 c#쪽에서 인자값을 받아서 처리할 수 없다는 것을 알게 되었습니다.
구현하고자 하는것은 간단합니다.
클라이언트 프로그램을 통해 ITEM_DB 라는곳의 유저 아이템을 계속해서 INSERT 시키고(프로시저를 통해서) 테이블의 해당 유저ID나 아이템ID 등을 통해서
SELECT하고(WHERE 절 포함 (WHERE 조건은 인자값을 받아서 처리할 수 있어야함)) 그 결과값을 C# 쪽에서 받는 것 입니다.
예:) SELECT * FROM 아이템테이블 WHERE 유저ID='ABC' ('ABC' 부분은 변수) 혹은
SELECT * FROM 아이템테이블 WHERE 아이템ID='ABC'
프로시저를 통한 INSERT 는 가능하다는 것을 확인 했으나 VIEW 를 통해 위의 과정을 수행 하는것은 제 생각에는 불가능하다고 보여지는데여
팀장의 말로는 VIEW의 가상테이블을 통해서 위의 과정을 수행하는 것이 가능하다고 합니다. (팀장도 아직 MSSQL 과 C# 에 관한 지식이 많지 않습니다.)
가능하면 혼자 처리해 보고 싶고 팀장의 지시사항이 잘못 되었다면 잘못 되었다고 정확히 말을 하고 싶은데 저도 아직 이쪽에 대해
정확히 아는것은 아니라서 똑 부러지게 말을 못하겠네여 .
조언을 좀 부탁 드리겠습니다.
추가적으로 VIEW 나 저장프로시저 외에 SELECT 절을 좀더 효과적으로 처리할 수 있는 DB의 프로그래밍 기능이 있는지여 ?
가능하면 프로그램상에서 직접 QUERY STRING 을 넘기는 방식은 사용을 하지 않으려고 해서요.
답변 기다리겠습니다. 감사합니다.
혹시 이곳 게시판의 성격에 맞지 않는 글이라면 삭제 하도록 하겠습니다.
|
그리고 저장프로시져는 인라인 SQL과 마찬가지로 쿼리 결과를 테이블로 리턴할 수 있습니다.
그리고 이 결과를 편하고 자유롭게 사용가능합니다.
자세한 것은 그곳에서 물어보세요.