Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Tabular Data Stream
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Infobox networking protocol | title = Tabular Data Stream | logo = | logo alt = | image = | image alt = | caption = | is stack = no | abbreviation = TDS | purpose = Database | developer = [[Sybase]] Inc., [[Microsoft]] | date = {{Start date and age|1984}} | influenced = | osilayer = [[Application layer]] (7) | ports = TCP/1433 | rfcs = }} '''Tabular Data Stream''' ('''TDS''') is an [[application layer]] [[Protocol (computing)|protocol]] used to transfer data between a [[database server]] and a client. It was initially designed and developed by [[Sybase]] Inc. for their [[Sybase SQL Server]] [[relational database]] engine in 1984, and later by [[Microsoft]] in [[Microsoft SQL Server]]. ==History== During the early development of Sybase SQL Server, the developers at Sybase perceived the lack of a commonly accepted application level protocol to transfer data between a [[database server]] and its [[Client (computing)|client]]. In order to encourage the use of its products, Sybase promoted the use of a flexible pair of [[Library (computer science)|libraries]], called <code>netlib</code> and <code>db-lib</code>, to implement standard [[SQL]]. A further library was included in order to implement "Bulk Copy" called <code>blk</code>. While <code>netlib</code>'s job is to ferry data between the two computers through the underlying [[network protocol]], <code>db-lib</code> provides an API to the client program, and communicates with the server via <code>netlib</code>. <code>db-lib</code> sends to the server a structured stream of bytes meant for tables of data, hence a Tabular Data Stream. <code>blk</code> provides, like <code>db-lib</code>, an API to the client programs and communicates with the server via <code>netlib</code>. In 1990 Sybase entered into a technology-sharing agreement with [[Microsoft]] which resulted in Microsoft marketing its own SQL Server β [[Microsoft SQL Server]] β based on Sybase's code. Microsoft kept the <code>db-lib</code> API and added [[ODBC]]. (Microsoft has since added additional APIs.) At about the same time, Sybase introduced a more powerful successor to <code>db-lib</code>, called <code>ct-lib</code>, and called the pair [[Open Client]]. <code>db-lib</code>, though officially deprecated, remains in widespread{{quantify|date=July 2017}} use. The TDS protocol comes in several varieties, most of which had not been openly documented because they were regarded{{by whom|date=July 2017}} as [[proprietary software|proprietary technology]]. The exception was TDS 5.0, used exclusively by Sybase, for which documentation is available from Sybase.<ref name="tdsfunctionalspec">{{cite web | url = http://www.sybase.com/content/1040983/Sybase-tds38-102306.pdf | title = TDS 5.0 Functional Specification, Version 3.8 | accessdate = 2009-07-08}}</ref> This situation changed when Microsoft published the TDS specification in 2008,<ref name="msopenprotocols">{{cite web | url = http://msdn.microsoft.com/en-us/library/dd304523.aspx | title = [MS-TDS]: Tabular Data Stream Protocol | accessdate = 2014-04-29}}</ref> as part of the [[Microsoft Open Specification Promise|Open Specification Promise]]. The [[FreeTDS]] team has developed a free native-library implementation of the TDS protocol,<ref>{{cite book | title = SQL server security |author1= Chip Andrews |author2= David Litchfield |author3= Bill Grindlay | page = 260 | publisher = [[McGraw-Hill Professional]] | year = 2003 | isbn = 0-07-222515-7 }}</ref> licensed under the [[GNU Lesser General Public License|LGPL]] license. [[WireShark]] has a protocol decoder for TDS.<ref>[http://wiki.wireshark.org/Protocols/tds protocol/tds], Wireshark.org wiki</ref> [[Oracle Corporation]] provides [[Oracle Net]] - software analogous to TDS.<ref> {{cite web |url= http://www.microsoft.com/rus/download.aspx?file=/SQL2008/white_papers/OracleSSIS.docx |title= SQL Server Integration Services with Oracle Database 10g |date= May 2008 |series= SQL Server Technical Article |publisher= Microsoft |page= 2 |access-date= 2017-07-20 |quote= Oracle Net is analogous to the SQL Server Tabular Data Stream (TDS) transport facility. }} </ref> ==See also== *[[Transact-SQL]] ==References== {{reflist}} ==External links== * [https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tds/b46a581a-39de-4745-b076-ec4dbb7d13ec [MS-TDS]: Tabular Data Stream Protocol] specification, Microsoft * [http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00384.0202/html/amcug/CIHGCIAH.htm What is TDS?], sybase.com * [http://www.freetds.org/ FreeTDS] * [https://github.com/rails-sqlserver/tiny_tds TinyTDS], Ruby bindings to FreeTDS. * [http://jtds.sourceforge.net jTDS], a pure-Java [[JDBC]] driver for TDS databases * [http://jbcp.sourceforge.net jBCP], an extension of jTDS to include BCP protocols * [http://www.freepatentsonline.com/7318075.html United States Patent 7318075: Enhanced tabular data stream protocol], Microsoft * [http://www.wipo.int/pctdb/en/wo.jsp?WO=2008151016 Patent: TRANSPORTING TABLE VALUED PARAMETER OVER TABULAR DATA STREAM PROTOCOL], Microsoft * [http://www.faqs.org/patents/app/20090112889 Patent application: COMPRESSING NULL COLUMNS IN ROWS OF THE TABULAR DATA STREAM PROTOCOL], Microsoft * [https://gitlab.com/wireshark/wireshark/-/wikis/Protocols/tds WireShark wiki: Protocol tds] [[Category:Application layer protocols]] [[Category:Database access protocols]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:By whom
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox networking protocol
(
edit
)
Template:Quantify
(
edit
)
Template:Reflist
(
edit
)