(상황)
델파이5에서 SQL서버2000에 연결을 해서 사용하려고 합니다.
우선 클라이언트에다가 BDE를 설정하였습니다.(Alias를 하나 만들고, MSSQL, ServerName, DBName 등을 입력고 저장후 연결하니 연결은 되었습니다)
그리고나서 델파이를 구동, 메뉴에서 Database -> Explorer를 구동하여 거기서 아까만든 Alias를 열어 연결해보니 오른쪽 맨 위에있는 Type 에 아래와 같은 메시지가 나타납니다.
MSSQL: Unknown Version: Mapping error: Bad template: SQL Server [^0-9]*([0-9]+).
SQL 7.0에서 할때는 Type 에 SQL Server 7.0 ....어쩌구 저쩌구 하면서 제대로 나오는데... 여기서는 모른다고 나오네요...
(증상)
그래도 열리기는 하길래 그냥 프로그램을 구동시켜보니 DB 쿼리하는시간이 엄청나게 걸리는 거에요. 거기다 같은 내용을 4번씩 보여주고(참고로 PK가 있어서 중복안되는데...)
한마디로 안되는겁니다.
(요구사항? 아니 부탁드립니다!)
해결해주심 감사하겠습니다.
쩝.
물론, 저는 Interanet, Internet에서도 연결이 잘됩니다..
즉, 내부 내트워크와 외부 네트워크에서도 접근이 가능하고,
SQL로 하는 모든 작업이 된고 있습니다..
님이 말씀하신 내용은 저에게는 한번도 나타나지 않았지만,
혹시나 해서.. 제가 설정한 부분을 말씀드리겠습니다..
1. Setup 파일 만들때에는 Alias만 추가하고 아무것도 만들지 않습니다..
2. 프로그램에서 사용하느 Database 컴포넌트에 설정을 합니다..
A. Server name=IP 혹은 네임
예) Server name=192.168.0.100
Server name=NT_SERVER
B. DATABASE NAME=Database명
예) DATABASE NAME=temp
C. USER NAME=계정(Database에 있는 계정)
예) USER NAME=sa
D. PASSWORD=계정의 암호(없으면, 공백으로 설정.. 즉, 입력치 않음)
예) PASSWORD=
3. 위 2, 1 순서로 설정하면, 일단은 문제 없습니다..
단, IP로 접속할때에는 문제가 있습니다..
MS-SQL서버는 일단은 ODBC의 접속 방법을 먼저 찾습니다..
따라서, MS-SQL서버의 기본 접속 방법은 PIPE입니다..
그래서, 레지스트리를 손봐서.. PIPE가 아니구..
TCP/IP로 접근이 되게 하여야 합니다..
설정 방법은 아래와 같습니다..
이것은 제가 사용하고 있고, 해당업체에서도 잘 되고 있습니다..
//================= MS-SQL 설정 ===========================//
Reg := TRegistry.Create;
With Reg Do
Begin
Rootkey := HKEY_LOCAL_MACHINE;
If OpenKey('SOFTWAREMicrosoftMSSQLServerClientConnectTo', False) Then
//No Process
Else Begin //첫번째 실행될때..
CreateKey('SOFTWAREMicrosoftMSSQLServer');
CloseKey();
CreateKey('SOFTWAREMicrosoftMSSQLServer');
CloseKey();
CreateKey('SOFTWAREMicrosoftMSSQLServerClient');
CloseKey();
CreateKey('SOFTWAREMicrosoftMSSQLServerClientConnectTo');
CloseKey();
CreateKey('SOFTWAREMicrosoftMSSQLServerClientDB-LIB');
CloseKey();
CreateKey('SOFTWAREMicrosoftMSSQLServerClientTDS');
CloseKey();
OpenKey('SOFTWAREMicrosoftMSSQLServerClientConnectTo', False);
WriteString('IP', 'DBMSSOCN,IP,1433');
//예) WriteString('192.168.0.100', 'DBMSSOCN,192.168.0.100,1433');
//다시한번 말씀드리지만, Local이나 Wan상에서도 사용하실 수 있습니다..
CloseKey();
//아래부분이 TCP/IP로 접속을 하라는 뜻..
OpenKey('SOFTWAREMicrosoftMSSQLServerClientTDS', False);
WriteString('192.168.0.100', '7.0');
End;
End; //
Reg.Free; //
Reg := Nil; //
//===========================================================//
이상 끝...
저도 한때는 접속이 안되서.. Local은되는데 Wan에서 접근이 안되길래..
고민한적이 있었답니다..
하여간, 님도 잘되기를 바랍니다..(물론, 전 지금까지 잘 사용하고 있슴다... 헤헤)
그럼... 성공하길 바랍니다..
김명일 wrote:
> (상황)
>
> 델파이5에서 SQL서버2000에 연결을 해서 사용하려고 합니다.
> 우선 클라이언트에다가 BDE를 설정하였습니다.(Alias를 하나 만들고, MSSQL, ServerName, DBName 등을 입력고 저장후 연결하니 연결은 되었습니다)
>
> 그리고나서 델파이를 구동, 메뉴에서 Database -> Explorer를 구동하여 거기서 아까만든 Alias를 열어 연결해보니 오른쪽 맨 위에있는 Type 에 아래와 같은 메시지가 나타납니다.
>
> MSSQL: Unknown Version: Mapping error: Bad template: SQL Server [^0-9]*([0-9]+).
>
> SQL 7.0에서 할때는 Type 에 SQL Server 7.0 ....어쩌구 저쩌구 하면서 제대로 나오는데... 여기서는 모른다고 나오네요...
>
>
> (증상)
>
> 그래도 열리기는 하길래 그냥 프로그램을 구동시켜보니 DB 쿼리하는시간이 엄청나게 걸리는 거에요. 거기다 같은 내용을 4번씩 보여주고(참고로 PK가 있어서 중복안되는데...)
> 한마디로 안되는겁니다.
>
> (요구사항? 아니 부탁드립니다!)
> 해결해주심 감사하겠습니다.
> 쩝.