This library is a Haskell implementation of the Tabular Data Stream (TSD) protocol used by Microsoft SQL Server and others.
-
mssql-simple : SQL Server client library implemented in Haskell
https://github.com/mitsuji/mssql-simple -
mssql-simple-example : Usage example of mssql-simple
https://github.com/mitsuji/mssql-simple-example
-
ODBC independent
-
Implemented only with Haskell (Independent of other languages and environments)
-
Supports encryption at login
-
Implemented as binary package compatible data types
-
Intended for use in both Client library and Server library implementations
-
7.1 Revision 1 (SQL Server 2000 SP1 and later)
-
Tested with SQL Server 2008 R2, SQL Server 2014
-
Write tests
- Write general tests
- Test legacy data types
-
Implement data types
- AltMetaData
- AltRow
-
Implement Binary.put interface of
- TokenStreams
-
Implement Binary.get interface of
- Login7
- SqlBatch
- RpcRequest
-
Implement more detailed types
- Collation(DataStream)
- GUID(Prelogin,DataStream)
- NONCE(Prelogin)
- TimeStamp(RCDlarge)
- Login7: TDS Version
- Login7: client program version
- Login7: timezone
- Login7: language
- TSEnvChange: Type
- TSLoginAck: Interface
- TSReturnValue: Status
-
Implement Flag interfaces
- Header status
- PLOEncryption
- PLOMars
- Login7 flag1
- Login7 flag2
- Login7 sql type
- Login7 flag3
- RpcReqBatchProcId OptionFlags
- RpcReqBatchPhrocName OptionFlags
- RpcReqBatchParam StatusFlag
- AltMetaDta Flags
- MetaColumnData Flags
- TSDone status
- TSDoneInProc status
- TSDoneProc status
- TSReturnValue Flags
-
ETC
-
Encrypt entire connection support
-
Mars support
-
SSPI support
-
FedAuth support
-
TDS protocol versions other than 7.1
-
Distributed Transaction
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tds/b4b78564-5440-4fc0-b5ef-c9e1925aaefe
-