今天用SQL Server的Microsoft OLE DB提供程序和ODBC的Microsoft OLE DB提供程序两种不同的方法链接了一下SQL Server数据库,却发现了一个以前从来没有注意到的问题。
就是在使用conn.execute的时候:使用第一种方式是完全正常的,但是使用ODBC的方式却在某些情况下一些数据不能读取(或者说读取为空值),具体的原因不清楚,查了好久也没发现区别在哪里。后来还是用了第一种方式。
注:在SQL Server 2000和SQL Server 2005数据库下问题一样。
第一种:OLE DB或OleDbConnection (.NET)方式
(使用SQL Server的Microsoft OLE DB提供程序)
Provider=sqloledb; Data Source=服务器IP; Initial Catalog=数据库名; User Id=用户名; Password=密码;
第二种:ODBC方式(使用ODBC的Microsoft OLE DB提供程序)
Driver={SQL Server}; Server=服务器IP; Database=数据库名; Uid=用户名; Pwd=密码;
第三种:DSN方式
DSN=DSN名; Uid=用户名; Pwd=密码;
第四种:SqlConnection(.NET)方式
Data Source=服务器IP; Initial Catalog=数据库名; User ID=用户名; Password=密码;