[FreeTDS] TDS(Tabular Data Stream) > 기술자료

본문 바로가기
사이트 내 전체검색

기술자료

Linux [FreeTDS] TDS(Tabular Data Stream)

페이지 정보

댓글 0건 조회 1,180회 작성일 2017-12-03 06:55 ~ 2017-12-07 07:03

본문

1. TDS(Tabular Data Stream)

TDS는 Tabular Data Stream의 약자로 데이터베이스 서버와 클라이언트 사이에서 데이터를 전송하는데 사용되는 응용 계층 프로토콜이다. 
데이터의 테이블들을 뜻하는 구조화된 바이트 스트림을 서버로 보내기 때문에 Tabular Data Stream이라는 이름이 붙여졌다.
TDS는 1984년 처음으로 Sybase 회사에서 개발되고 설계되었다. 네트워크 프로토콜을 통해 두 컴퓨터 사이에 데이터를 전송하는 netlib, 클라이언트 프로그램에게 API를 제공하고 netlib을 통해 서버와 통신하는 DB-LIB으로 구성되어 있었다. 
또한, 데이터베이스 테이블로 데이터를 더 빠르게 불러올 수 있는 blk(bulk copy) 라이브러리도 제공하였다.

1990년 Sybase 코드에 기반을 둔 MSSQL에 대해 마이크로소프트 기술 동의 협정을 채결하였다. 
마이크로 소프트는 DB-LIB API를 유지하면서 ODBC를 추가 하였고 Sybase는 Open Client의 라이브러리인 DB-LIB, CT-LIB을 개발하였다. 
DB-LIB은 권장하지 않지만(deprecated) 널리 사용되고 있다.



2. TDS 프로토콜
TDS 프로토콜은 다양하게 나왔는데 대부분은 문서가 공개되지 않았다. 예외적으로 Sybase가TDS 5.0 프로토콜 문서를 이용가능 하도록 했다.

TDS 4.2
Sybase 시스템 10 이전, Microsoft SQL Server 6.x
Sybase before System 10, Microsoft SQL Server 6.x

TDS 5.0
Sybase System 10 이상
Sybase System 10 and above

TDS 5.0 only
Watcom SQL Server
가장 좋은 정보는 SQL Anywhere가 OpenServer Gateway (OSG)를 사용하여 5.5.03 버전의 TDS를 처음 지원했으며 6.0 TDS (native TDS 5.0) 지원이 6.0 버전으로 출시되었습니다.
Originally Watcom SQL Server, a completely separate codebase. 
Our best information is that SQL Anywhere first supported TDS in version 5.5.03 using the OpenServer Gateway (OSG), and native TDS 5.0 support arrived with version 6.0.

TDS 7.0
Microsoft SQL Server 7.0
SQL 서버 7.0의 확장된 데이터 타입을 지원 (255자 이상의 char/varchar 필드), 유니코드를 지원.
Includes support for the extended datatypes in SQL Server 7.0 (such as char/varchar fields of more than 255 characters), and support for Unicode.

TDS 7.1
Microsoft SQL Server 2000
모든 필드에서 bigint (64 비트 정수), 변형 및 데이터 정렬에 대한 지원을 포함합니다.
데이터 정렬은 널리 사용되지 않습니다.
Include support for bigint (64 bit integers), variant and collation on all fields. 
Collation is not widely used.

TDS 7.2
Microsoft SQL Server 2005
varchar (max), varbinary (max), xml 데이터 유형 및 MARS [a]에 대한 지원이 포함됩니다.
Includes support for varchar(max), varbinary(max), xml datatypes and MARS[a].

TDS 7.3
Microsoft SQL Server 2008
시간, 날짜, datetime2, datetimeoffset에 대한 지원을 포함합니다.
Includes support for time, date, datetime2, datetimeoffset.

TDS 7.4
Microsoft SQL Server 2012 or 2014
세션 복구 지원을 포함합니다.
Includes support for session recovery.

TDS 8.0
FreeTDS는 이전 버전과의 호환성을 위해이 버전을 7.1로 알리겠지만, 향후 호환성 문제로 인해 피해야합니다.
구식 버전에 대해서는 아래의 내용을 참고하세요
FreeTDS will alias this version to 7.1 for backwards compatibility reasons, but this should be avoided due to future compatibility concerns. 
See note below on obsolete versions.

구식 버전
FreeTDS 초기에 Microsoft는 TDS 프로토콜에 대한 공식 사양을 공개하지 않았습니다. 
MSSQL 2000 (제품 8.0)이 출시되었을 때, TDS 프로토콜이 8.0 버전이 될 것이라는 공식적인 정보가 Microsoft 커뮤니티에서 공개되었습니다. 
따라서 FreeTDS 개발자는 FreeTDS 용 버전을 채택했습니다. 수년 후, Microsoft가 프로토콜의 공식 사양을 발표하기 시작했을 때, FreeTDS가 8.0 및 9.0이라고 표시된 TDS 버전이 실제로 버전 7.1 및 7.2 였음이 분명해졌습니다.
호환성을 위해 버전 8.0은 여전히 ​​FreeTDS에서 처리되지만 향후 버전의 FreeTDS에서 제거되거나 향후 SQL Server 버전과 충돌 할 수 있으므로 버전 8.0을 사용하지 마십시오.

Regarding obsolete versions
In the earlier days of FreeTDS, Microsoft did not release official specs for the TDS protocol. 
When MSSQL 2000 (product 8.0) was released, there was semi-official indications from the Microsoft community that the TDS protocol would be version 8.0. 
So the FreeTDS developers adopted that version for FreeTDS. 
Years later, when Microsoft started releasing official specs of the protocol, it became obvious that the TDS versions that FreeTDS had labeled 8.0 and 9.0 were actually versions 7.1 and 7.2 respectively.
For compatibility reasons version 8.0 is still handled by FreeTDS but you should avoid using it as it could be removed in a future version of FreeTDS or it could clash with a future SQL server version.



3. FreeTDS

TDS 프로토콜을 다시 구현한 무료 소프트웨어 라이브러리이다. 
DB-LIB이나 CT-LIB을 대신하여 사용할 수 있고 ODBC 라이브러리를 포함한다. 
일반적으로 LGPL 라이선스가 적용되어 소스로부터 라이브러리를 컴파일하여 다른 응용프로그램이 FreeTDS 라이브러리를 링크하여 사용할 수 있도록 한다.

스크립트 언어를 위해 FreeTDS는 펄, 파이썬, 루비, PHP등과 같은 언어의 모듈과 결합할 수 있다. 
또한, jTDS는 FreeTDS의 자바 구현 버전이며 소스포지에서 사용가능하며 jBCP는 jTDS에서 BCP(Bulk Copy Program) 기능을 포함한다.

현재 TDS 4.2, 5.0, 7.0, 8.0이 구현되었고 Sybase 뿐만 아니라 MSSQL 서버와도 통신할 수 있다. 
JDBC 드라이버도 BSD 라이선스에 의해 배포되며 다운로드 페이지( http://www.freetds.org/software.html )에서 받을 수 있다.

FreeTDS는 다양한 용도로 사용할 수 있다. 
유닉스/리눅스 웹서버를 통해 웹으로 SQL 서버에 저장된 데이터를 표현할 수 있고, 
NT에서 Unix로 SQL 서버 데이터베이스 코드를 이식할(port) 수 있고, 
유닉스 소스로부터 SQL 서버로 데이터를 가지고 올 수 있으며, 
native 드라이버 없이 플랫폼에 대한 데이터베이스 접근을 제공한다.



4. FreeTDS 에러

[root@localhost ~]# tsql -H 아이피 -p 14330 -U 아이디 -P '비밀번호'
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> select * from 테이블
2> go
Msg 208 (severity 16, state 1) from WIN-********** Line 1:
        "Invalid object name '테이블'."

요청한 SQL Server 에 테이블이 존재하지 않는다은 에러입니다.
디비네임을 지정해서 로그인을 합니다.

1> select 필드1 from 디비네임.dbo.테이블 where 필드2='aaa'
2> go
필드1
123456
(1 row affected)


[root@localhost ~]# tsql -H 아이피 -p 14330 -U 아이디 -P '비밀번호' -D 디비네임
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Setting 디비네임 as default database in login packet
1> select * from dbo.테이블
2> go
Msg 4004 (severity 16, state 1) from WIN--********** Line 1:
        "Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier."

Unicode 전용 데이터 정렬 또는 ntext 데이터의 유니 코드 데이터는 DB-Library (예 : ISQL) 또는 ODBC 버전 3.7 이하를 사용하여 클라이언트에 보낼 수 없습니다.
필드중에 ntext 값이 아닌 다른 특정 필드를 호출하면 정상적으로 데이타가 보여집니다.

1> select 필드1 from dbo.테이블 where 필드2='aaa'
2> go
필드1
123456
(1 row affected)



관련자료
http://sdr1982.tistory.com/78
http://www.freetds.org/userguide/choosingtdsprotocol.htm
https://blog.sqlauthority.com/2007/04/25/sql-server-error-messages-sysmessages-error-severity-level/
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


Total 2,275건 1 페이지
기술자료 목록
번호 제목
공지 일반   16263  2001-08-31 11:52 ~ 2017-12-05 16:33  
2274 그누보드   35  2018-09-15 08:08  
2273 PHP   58  2018-09-14 05:59  
2272 전자결제   41  2018-09-14 04:57 ~ 2018-09-14 04:58  
2271 전자결제   65  2018-09-12 14:17 ~ 2018-09-13 14:38  
2270 일반   149  2018-08-31 18:10 ~ 2018-09-14 20:50  
2269 HTML   129  2018-08-30 15:47  
2268 그누보드   159  2018-08-30 10:41 ~ 2018-08-30 10:48  
2267 PHP   131  2018-08-29 03:21 ~ 2018-08-29 17:13  
2266 JavaScript   175  2018-08-28 18:49  
2265 HTML   175  2018-08-27 14:33  
2264 HTML   237  2018-08-26 14:07  
2263 일반   154  2018-08-22 13:17  
2262 PHP   157  2018-08-20 15:51  
2261 HTML   164  2018-08-18 05:37  
2260 일반   169  2018-08-17 15:18 ~ 2018-08-17 15:19  
2259 HTML   256  2018-08-17 06:39  
2258 HTML   230  2018-08-15 05:06 ~ 2018-08-15 05:58  
2257 HTML   114  2018-08-13 18:50  
2256 HTML   184  2018-08-09 10:12 ~ 2018-08-09 13:26  
게시물 검색

회원로그인

계좌이체 or 신용카드 결제하기
해피정닷컴으로 대금결제를 할 수 있습니다

접속자집계

오늘
22
어제
2,605
최대
3,174
전체
4,263,087

회사명: 해피정닷컴   사업자번호: 119-05-36414   전화: 070-7600-3500   팩스: 02-865-3528   주소: 08394 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
대표: 정창용   개인정보보호책임자: 정창용   통신판매업신고번호: 2014-서울구로-0074 [사업자등록정보확인]   건강기능식품영업신고번호 제2018-0080452호
Copyright 2001~2018 해피정닷컴. All Rights Reserved.