데이터베이스 개발자 질문과 답변 게시판
2008 R2 이건 서비스팩 1 이고
2008 이건 그냥 2008인가요?
xp 프로시져를 올렸는데
opends60.dll 을 참조하였습니다. binn 폴더에 있는것이고요
xp_test.dll은 PSRV_PROC TSQLXProc 사용했습니다.
xp_test.dll 또는 이 DLL이 참조하는 DLL 중 하나를 로드할 수 없습니다. 원인:193(%1은(는) 올바른 Win32 응용 프로그램이 아닙니다.)
그런데 제 컴퓨터에 2008 R2 32bit 를 설치했는데
Clrintegration Enabled 이거 False 로 되어있어도 잘 운용이 됩니다.
방법이 없을까요?
다른 버젼들 다 해보아도 잘 되는데 2008 만 현재 안되고 있습니다.
델파이로 개발되었습니다.
Comment 10
-
쓸만한게없네(윤선식)
2013.02.18 16:27
-
블랙
2013.02.18 16:55
SQL 2008
access check cache bucket count 0 65536 0 0
access check cache quota 0 2147483647 0 0
Ad Hoc Distributed Queries 0 1 0 0
affinity I/O mask -2147483648 2147483647 0 0
affinity mask -2147483648 2147483647 0 0
affinity64 I/O mask -2147483648 2147483647 0 0
affinity64 mask -2147483648 2147483647 0 0
Agent XPs 0 1 1 1
allow updates 0 1 0 0
awe enabled 0 1 0 0
blocked process threshold (s) 0 86400 0 0
c2 audit mode 0 1 0 0
clr enabled 0 1 1 1
cost threshold for parallelism 0 32767 5 5
cross db ownership chaining 0 1 0 0
cursor threshold -1 2147483647 -1 -1
Database Mail XPs 0 1 0 0
default full-text language 0 2147483647 1042 1042
default language 0 9999 29 29
default trace enabled 0 1 1 1
disallow results from triggers 0 1 0 0
filestream access level 0 2 0 0
fill factor (%) 0 100 0 0
ft crawl bandwidth (max) 0 32767 100 100
ft crawl bandwidth (min) 0 32767 0 0
ft notify bandwidth (max) 0 32767 100 100
ft notify bandwidth (min) 0 32767 0 0
index create memory (KB) 704 2147483647 0 0
in-doubt xact resolution 0 2 0 0
lightweight pooling 0 1 0 0
locks 5000 2147483647 0 0
max degree of parallelism 0 64 0 0
max full-text crawl range 0 256 4 4
max server memory (MB) 16 2147483647 2147483647 2147483647
max text repl size (B) -1 2147483647 65536 65536
max worker threads 128 32767 0 0
media retention 0 365 0 0
min memory per query (KB) 512 2147483647 1024 1024
min server memory (MB) 0 2147483647 0 0
nested triggers 0 1 1 1
network packet size (B) 512 32767 4096 4096
Ole Automation Procedures 0 1 0 0
open objects 0 2147483647 0 0
optimize for ad hoc workloads 0 1 0 0
PH timeout (s) 1 3600 60 60
precompute rank 0 1 0 0
priority boost 0 1 0 0
query governor cost limit 0 2147483647 0 0
query wait (s) -1 2147483647 -1 -1
recovery interval (min) 0 32767 0 0
remote access 0 1 1 1
remote admin connections 0 1 0 0
remote login timeout (s) 0 2147483647 20 20
remote proc trans 0 1 0 0
remote query timeout (s) 0 2147483647 600 600
Replication XPs 0 1 0 0
scan for startup procs 0 1 0 0
server trigger recursion 0 1 1 1
set working set size 0 1 0 0
show advanced options 0 1 1 1
SMO and DMO XPs 0 1 1 1
SQL Mail XPs 0 1 0 0
transform noise words 0 1 0 0
two digit year cutoff 1753 9999 2049 2049
user connections 0 32767 0 0
user options 0 32767 0 0
xp_cmdshell 0 1 1 1 -
블랙
2013.02.18 16:55
SQL2008R2
access check cache bucket count 0 16384 0 0
access check cache quota 0 2147483647 0 0
Ad Hoc Distributed Queries 0 1 0 0
affinity I/O mask -2147483648 2147483647 0 0
affinity mask -2147483648 2147483647 0 0
Agent XPs 0 1 1 1
allow updates 0 1 0 0
awe enabled 0 1 0 0
backup compression default 0 1 0 0
blocked process threshold (s) 0 86400 0 0
c2 audit mode 0 1 0 0
clr enabled 0 1 0 0
cost threshold for parallelism 0 32767 5 5
cross db ownership chaining 0 1 0 0
cursor threshold -1 2147483647 -1 -1
Database Mail XPs 0 1 0 0
default full-text language 0 2147483647 1042 1042
default language 0 9999 29 29
default trace enabled 0 1 1 1
disallow results from triggers 0 1 0 0
filestream access level 0 2 0 0
fill factor (%) 0 100 0 0
ft crawl bandwidth (max) 0 32767 100 100
ft crawl bandwidth (min) 0 32767 0 0
ft notify bandwidth (max) 0 32767 100 100
ft notify bandwidth (min) 0 32767 0 0
index create memory (KB) 704 2147483647 0 0
in-doubt xact resolution 0 2 0 0
lightweight pooling 0 1 0 0
locks 5000 2147483647 0 0
max degree of parallelism 0 32 0 0
max full-text crawl range 0 256 4 4
max server memory (MB) 16 2147483647 2147483647 2147483647
max text repl size (B) -1 2147483647 65536 65536
max worker threads 128 32767 0 0
media retention 0 365 0 0
min memory per query (KB) 512 2147483647 1024 1024
min server memory (MB) 0 2147483647 0 0
nested triggers 0 1 1 1
network packet size (B) 512 32767 4096 4096
Ole Automation Procedures 0 1 0 0
open objects 0 2147483647 0 0
optimize for ad hoc workloads 0 1 0 0
PH timeout (s) 1 3600 60 60
precompute rank 0 1 0 0
priority boost 0 1 0 0
query governor cost limit 0 2147483647 0 0
query wait (s) -1 2147483647 -1 -1
recovery interval (min) 0 32767 0 0
remote access 0 1 1 1
remote admin connections 0 1 0 0
remote login timeout (s) 0 2147483647 20 20
remote proc trans 0 1 0 0
remote query timeout (s) 0 2147483647 600 600
Replication XPs 0 1 0 0
scan for startup procs 0 1 0 0
server trigger recursion 0 1 1 1
set working set size 0 1 0 0
show advanced options 0 1 1 1
SMO and DMO XPs 0 1 1 1
SQL Mail XPs 0 1 0 0
transform noise words 0 1 0 0
two digit year cutoff 1753 9999 2049 2049
user connections 0 32767 0 0
user options 0 32767 0 0
xp_cmdshell 0 1 0 0 -
블랙
2013.02.18 16:56
관심 감사합니다.
EXEC sp_configure "show advanced option", "1"
RECONFIGURE완료후 실행하였습니다.
SQL2008은 win2008 64bit
SQL2008 R2는 winXP 32bit
입니다.
-
catchv
2013.02.18 17:48
32bit로 컴파일 된 DLL을 64bit에서 호출하는 문제라는 글이 있습니다.
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/e7ad2b03-a233-4f75-a911-63dd2cc3fc2b/
만약에 델파이로 64bit 컴파일이 어려우시면 저도 해보지는 않았지만 C#으로 래핑 모듈을 만들어서 호출하는 것은 어떨까요?
(DllImport로 win32 함수를 로드하는 방법으로...)
-- catchv
-
쓸만한게없네(윤선식)
2013.02.18 17:49
우선 sp_configure에서 크게 다른 부분은 다음과 같습니다.(Server Edition에 따른 특성은 제외하고)
option / 2008 / 2008 R2
CLR / Disabled / Enabled
xp_cmdshell / Disabled / Enabled
우선 위 부분 맞춰 보세요...
(DLL 확장이기 때문에 큰 상관은 없을 수 있지만, 우선 환경을 맞추는 게 시작이라고 보시면 됩니다.)
CLR, xp_cmdshell enabled 처리는 다음과 같이.
sp_configure 'clr enabled', 1
GO
sp_configure 'xp_cmdshell', 1
GO
reconfigure with override
GO
만약 그래도 안 되신다면, 권한 문제일 가능성(UAC 등) 이 큽니다.
SQL Server Service 계정이 DLL이 설치된 해당 폴더에 권한이 있는지 확인해 보시고,
Service 실행이 어떤 권한인지도 한 번 봐 주시는 게 좋을 듯 합니다.
또한... DLL 실행의 경우 SQL Server 보다는 OS Version을 따라간다고 보시는 게 맞을 듯.
즉 , OS가 64bit인 경우, 32bit 프로그램이 정상적으로 구동되지 않을 수 있습니다.
PS.
참고로 xp_cmdshell은 SQL Server에서 DOS 명령어를 사용 가능하게 해 주는 부분인데, 보안상 사용을 권장하지 않습니다.
-
블랙
2013.02.18 18:12
답변 감사합니다.
이야기 하신것은 맞추어 보았습니다.
32비트 프로그램이 구동이 안되실수 있다고 했는데 그럼 혹시 64비트로 어떻게 바꾸는지 혹시 아시나요
제가 델파이인데 별도로 어떤 옵션등은 모르겠습니다. 다른 언어라도 혹 아신다면 알려주세요 고맙습니다.
우선은 제가 이 모듈을 C#으로 만들 실력이 안됩니다. C#을 잘 모릅니다. 단순작업만 가능.
C#으로 래핑 모듈을 만들어서 호출하는 것은 어떨까요?
(DllImport로 win32 함수를 로드하는 방법으로...) 라는 답변이 있으신데
혹 현재 sql에 등록되게 만든 dll을 일반 dll로 만들어서 C#에서 그 dll을 호출 하는 sql용 프로시져를 만들라는 이야기이신가요?
-
catchv
2013.02.18 18:49
저도 델파이는 잘 몰라서... visual C++ 같은 경우는 컴파일 옵션을 변경하면 되는데 델파이는 잘 모르겠습니다.
C#은 아래 사이트 가시면 Windows에서 제공하는 Win32 함수들을 래핑하는 방법이 자세히 설명 되어 있습니다.
Windows API를 써보셨으니깐 보시면 금방 이해 하실 수 있을 것 같습니다.
근데 이 방벙이 될지는 저도 안해 봐서 잘 모르겠습니다. ^^;
-- catchv
-
블랙
2013.02.18 19:07
답변 감사합니다.
내일까지 해결을 어찌 해봐야 일정에 차질이 없는데 먹먹하내요 ㅠㅠ
혹시나하고 SQL2008 서비스팩3 을 설치해봐도 반응이 없네요...
-
블랙
2013.02.19 11:00
64비트용으로 재 작업 진행중입니다.
64비트용으로 하니 우선 숫자영문은 잘보여지고 있습니다.
다만 한글이 한글자를 한바이트로 인식하는지 쿼리상에 잘려서 보여지네요
관심 감사드립니다.
일전에 올린 질문이신 듯..
우선.
SQL Server 2008 과 SQL Server 2008 R2 는 전혀 다른 버젼입니다.
2008 R2는 2008의 상위 버젼입니다.
그러므로, SQL Server 2008 에 암만 서비스팩을 올리거나 해도 2008 R2 가 되지 않습니다.
어쨌든 그건 그렇고요...
말씀하신 사항은, SQL 2008 / SQL 2008 R2 문제가 아니라 권한 문제일 수도 있겠네요.
문제가 되는 서버에서 해당 DLL을 SQL Server가 아닌 다른 응용프로그램에 참조를 걸어서 실행해 보는 것이 가장 확실히 알아보는 방법이 되겠지만, 보통 그런 환경 만들기가 쉽진 않지요.
다음 사항이 도움이 될 것 같진 않지만... (경로에 공백이 있을 경우 ) 참고로 보시고.
http://support.microsoft.com/kb/812486/ko
혹시.
두 군데 파일의 속성, 그리고 두 서버의 sp_configure 를 올려주실 수 있나요(show advanced options 가 1인 상태로 보여주셔야..)
더 잘 아시는 분이 계시면 답을 해 드릴 지도. ㅋ.