diff options
Diffstat (limited to 'web/tdsclient')
-rwxr-xr-x | web/tdsclient | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/web/tdsclient b/web/tdsclient new file mode 100755 index 00000000000..2c58aea698f --- /dev/null +++ b/web/tdsclient @@ -0,0 +1,157 @@ +* TDS Generic Provider + +<ul> + <li>ADO.NET Provider for older Sybase and Microsoft SQL Server databases</li> + + <li>Exists in namespace Mono.Data.TdsClient and assembly Mono.Data.TdsClient</li> + + <li>Created by Tim Coleman</li> + + <li>Used the <a href="http://www.freetds.org/">FreeTDS</a> and + <a href="http://jtds.sourceforge.net/">jTDS</a> projects as resources.</li> + + <li>Implemented in 100% C#</li> + + <li>Is similar to the Mono.Data.SybaseClient and System.Data.SqlClient providers.</li> + + <li>Requires the assembly Mono.Data.Tds.dll which implements the TDS protocol in 100% C#.</li> + + <li>Uses TDS Protocol Version 4.2 by default</li> + + <li>Bugs with Mono or the data provider should be reported + in Mono's Bugzilla <a href="http://bugzilla.ximian.com/">here</a>. If you + do not have Bugzilla user account, it is free + and easy to + create one <a href="http://bugzilla.ximian.com/createaccount.cgi">here</a>.</li> + +</ul> + +** Current Status + + +<ul> + <li>Only builds on Windows currently due to mcs does not support modules and mcs + has problems with code that is internal.</li> + + <li>Able to connect to Microsoft SQL Server and Sybase databases</li> + + <li>SQL commands can be executed + via ExecuteNonQuery() of a TdsCommand.</li> + + <li>SQL aggregates can be executed and a single row and single column + result can be retrieved via ExecuteScalar() of a TdsCommand</li> + + <li>SQL queries can be executed via ExecuteReader() and results + can be retrieved via TdsDataReader.</li> + + <li>a DataTable with schema info about a result can be gotten via GetSchemaTable() + in a TdsDataReader</li> + + <li>Data can be filled in a DataTable in a DataSet via a TdsDataAdapter</li> +</ul> + +** Action plan + +<ul> + <li>Connection timeouts is being developed now.</li> + + <li>TODO</li> +</ul> + +** Testing + +<ul> + <li>Have a working mono and mcs installed</li> + + <li>Have access to a Sybase or Microsoft SQL Server database + or either download it: + <ul> + <li><a href="http://www.microsoft.com/sql/default.asp">Microsoft SQL Server</a></li> + <li><a href="http://www.sybase.com/downloads">Sybase</a></li> + </ul> + </li> + <li>If using Microsoft SQL Server 2000, make sure + you are using at least Service Pack 3 for Microsoft SQL Server 2000</li> + + <li>Located at mcs/class/System.Data/Test is a test for System.Data.SqlClient + named SqlTest.cs and you could use this as a basis for your test.</li> + + <li>Has a connection string format: +<pre> + Server=hostname;Database=databaseName;User ID=userid;Password=password +</pre> + </li> + <li>The Server part can be used two ways: + <ul> + <li>hostname - "Server=MYHOST"</li> + <li>hostname,port - "Server=MYHOST,1533"</li> + </ul> + </li> + + <li>C# Example: +<pre> + using System; + using System.Data; + using Mono.Data.TdsClient; + + public class Test + { + public static void Main(string[] args) + { + string connectionString = + "Server=localhost;" + + "Database=pubs;" + + "User ID=myuserid;" + + "Password=mypassword;"; + IDbConnection dbcon; + dbcon = new TdsConnection(connectionString); + dbcon.Open(); + IDbCommand dbcmd = dbcon.CreateCommand(); + string sql = + "SELECT fname, lname " + + "FROM employee"; + dbcmd.CommandText = sql; + IDataReader reader = dbcmd.ExecuteReader(); + while(reader.Read()) { + string FirstName = (string) reader["fname"]; + string LastName = (string) reader["lname"]; + Console.WriteLine("Name: " + + FirstName + " " + LastName); + } + // clean up + reader.Close(); + reader = null; + dbcmd.Dispose(); + dbcmd = null; + dbcon.Close(); + dbcon = null; + } + } +</pre> + </li> + <li>Building C# Example: + <ul> + <li>Save the example to a file, such as, TestExample.cs</li> + <li>Build on Linux: +<pre> + mcs TestExample.cs -r System.Data.dll \ + -r Mono.Data.TdsClient.dll +</pre> + </li> + <li>Build on Windows via Cygwin: +<pre> + mono C:/cygwin/home/MyHome/mono/install/bin/mcs.exe \ + TestExample.cs \ + -lib:C:/cygwin/home/MyHome/mono/install/lib \ + -r System.Data.dll -r Mono.Data.TdsClient.dll +</pre> + </li> + </ul> + </li> + <li>Running the Example: +<pre> +mono TestExample.exe +</pre> + </li> +</ul> + |