[FreeTDS] TDS(Tabular Data Stream) > 온라인강의

본문 바로가기
 
 
 
비즈니스의 시작 비즈명함 ~ 가격, 품질, 배송 3가지 만족을 드리는 비즈명함 / 즉석명함 / 급행서비스 / 서울 전지역 수도권일부 3시간배송

오늘 818
어제 1,401
최대 2,526
전체 3,674,021

최근 방문자

2264
2251
2158
2052
1401
818
12 13 14 15 16 17
select * from g5_menu where me_use = '1' and me_link like '%lecture%'
온라인강좌 홈 > 온라인강좌 > 온라인강좌

Linux | [FreeTDS] TDS(Tabular Data Stream) (up. 2017-12-07 07:03)

페이지 정보

작성일2017-12-03 06:55 조회141회 댓글0건

본문

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,151건 1 페이지
온라인강의 목록
번호 제목
공지
일반 온라인 강좌를 소개합니다. (up.2017-12-05 16:33) 인기글 Hit.14391
2150
일반 파일명에 허용/금지 글자 (up.2017-12-15 06:00) Hit.27
2149
2148
2147
2146
2145
그누보드 [G5] 모바일 메뉴 (up.2017-12-11 11:17) 첨부파일 Hit.53
2144
2143
2142
2141
MSSQL CentOS7 + PHP7 + SQL Server 연결 (up.2017-12-07 16:22) Hit.142
2140
열람중
Linux [FreeTDS] TDS(Tabular Data Stream) (up.2017-12-07 07:03) Hit.142
2138
Linux SED 명령어 사용법 (wr.2017-12-03) Hit.138
2137
2136
일반 IP로 국가 판별하기 (wr.2017-12-01) Hit.178
2135
그누보드 [G5] 댓글(코멘트) 페이징 (up.2017-12-01 06:32) Hit.190
2134
2133
2132
2131
2130
2129
2128
2127
MySQL sql_mode (up.2017-11-26 04:25) Hit.234
게시물 검색
 
 
상호: 해피정닷컴 대표:정창용 사업자등록번호:119-05-36414 (08394) 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
전화: 070-7600-3500 팩스:02-865-3528 개인정보관리:정창용 mail@happyjung.com 에스크로확인
개인정보취급방침
COPYRIGHT 2001~2017 해피정닷컴. All rights reserved. 통신판매신고:2014-서울구로-0074
 
모바일 버전으로 보기