[FreeTDS] TDS(Tabular Data Stream) > 기술자료 | 해피정닷컴

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

본문 바로가기

사이트 내 전체검색

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

Linux [FreeTDS] TDS(Tabular Data Stream)

페이지 정보


본문

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,641건 26 페이지
  • RSS
기술자료 목록
2141
MSSQL   11659  2017-12-03 07:14  
열람
Linux   19687  2017-12-03 06:55 ~ 2017-12-07 07:03  
2139
Linux   17614  2017-12-03 06:11  
2138
SQL   22208  2017-12-01 14:40 ~ 2017-12-01 23:22  
2137
일반   11633  2017-12-01 00:36  
2136
그누보드   11878  2017-11-30 06:43 ~ 2022-02-17 08:32  
2135
XML   9773  2017-11-30 03:37 ~ 2017-11-30 04:14  
2134
XML   27866  2017-11-28 18:00 ~ 2020-02-17 04:02  
2133
MSSQL   13723  2017-11-28 14:08  
2132
MySQL   11420  2017-11-27 16:57  
2131
MSSQL   9440  2017-11-26 05:27  
2130
MySQL   9715  2017-11-26 05:20  
2129
MSSQL   15847  2017-11-26 05:08  
2128
MySQL   25390  2017-11-26 04:11 ~ 2018-02-03 00:25  
2127
MySQL   27868  2017-11-26 02:14  
2126
Linux   29831  2017-11-23 16:32 ~ 2018-01-10 23:07  
2125
MySQL   14707  2017-11-22 04:15 ~ 2018-02-09 10:09  
2124
Linux   12933  2017-11-21 02:59  
2123
Linux   24224  2017-11-21 02:57 ~ 2017-11-21 03:00  
2122
JavaScript   26594  2017-11-19 18:06  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.