database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6408 게시물 읽기
No. 6408
외부 라이브러리(dll) 활용
작성자
노진광(kite20)
작성일
2012-09-04 14:41ⓒ
2012-09-04 14:43ⓜ
조회수
9,094

안녕하세요.  초보 개발자 입니다. 

조언을 요청 드립니다. 

 

제가 하려는 작업은  외부 동적 라이브러리를 활용하여 암호화를 하려고 합니다. 

앞서서 오라클 과 , postgresql 을 개발 완료 하였고 이번엔 

ms-sql 개발을 진행 하려 합니다. 

dll 을 만들어  DB 에서 로드하여 사용하려 합니다.

오라클 처럼  함수 생성시 dll 내의 함수를 호출 하는 함수를 만든후

호출시  DB의  값을 dll  내의 함수 에게 전달하여 결과를 리턴 하는 방식으로

만들려 합니다. 

현재 구글링으로 샘플 및 관련 문서를 찾아보고 있는데 원하는 자료를 찾지 못하여 

혹시 작업을 해보신 분이나 검색 키워드를 아시는 분은 조언 바랍니다. 

 

감사합니다. 

 

 

 

 

이 글에 대한 댓글이 총 4건 있습니다.

 http://technet.microsoft.com/ko-kr/cc487838.aspx

젤 쉽게 읽었던 문서였는데 도움이 되실지....

우욱님이 2012-09-04 14:53에 작성한 댓글입니다. Edit

 아 정말 감사합니다. 찾던 자료에요~  

노진광(kite20)님이 2012-09-04 15:21에 작성한 댓글입니다.

   추가 질문 하나 드릴께요~

윗분이 찾아주신 정보로 개발을 진행중입니다. 

제가 사용하려는 라이브러리 C++ 이라서 포인터 변수를 사용합니다. 

[DllImport("spxdbo.dll")]

unsafe extern public static int SPXO_EncryptData(byte* indata, int inlen, byte* outdata, int* outlen, int* outsize, int bFlag, char* KeyID, int nAlgoID);

 

위와 같이  C#에서 C++ 을 호줄하여 사용하려 합니다. 

문제는 위 합수는 리턴은 int  즉 성공 여부만 받습니다. 

그리고 실제 사용할 outdata 의 주소에 함수 수행 결과가 담아 지게됩니다. 

C# 에서는 포인터 변수는 찾아보니 구현할 수 있을 것 같습니다. 

다만  mssql 쿼리 내에서 

 

 

함수 생성시 리턴외에 반환 받을 변수를  넘길 수있나요??
 
오라클 같은경우 아래와 같습니다. 
 
CREATE OR REPLACE FUNCTION
SPX_DecryptData(inData IN RAW, outData OUT RAW, flag IN PLS_INTEGER, KeyID IN VARCHAR2, AlgoID IN PLS_INTEGER)
RETURN PLS_INTEGER
IS LANGUAGE C
NAME "SPXO_DecryptData"
LIBRARY SPXDBLIB
PARAMETERS (inData, inData LENGTH, outData, outData LENGTH, outData MAXLEN, flag, KeyID, AlgoID);
 
 

 

 

노진광(kite20)님이 2012-09-18 15:08에 작성한 댓글입니다.

프로시저에서 output parameter로 뽑아내면 됩니다.

http://msdn.microsoft.com/ko-kr/library/ms131094(v=sql.105).aspx

OUTPUT 매개 변수 및 CLR 저장 프로시저

 
 
부분을 참조하시면 됩니다.

 

우욱님이 2012-09-18 21:09에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6411msql 쿼리 도움 요청합니다. [1]
궁금이
2012-09-11
6854
6410셀렉트 쿼리 하나 질문이요~ [4]
유상혁
2012-09-06
6950
6409VIEW Table Select시 Base Table을 조회하나요? [1]
김영환
2012-09-05
7606
6408외부 라이브러리(dll) 활용 [4]
노진광
2012-09-04
9094
6406자동증가 설정 [1]
초보
2012-08-21
6863
6405SQL Server 2005에 이후버전의 Management Studio를 붙이면 [1]
박선웅
2012-08-17
6338
6404tempdb와 transaction log 위치 [2]
조중규
2012-08-17
7643
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다