We were using MS-Access as our DB and recently in the process of moving to SQL Server. We mostly use ASP and ADO for our development. We read the DB table usign ADO recordset and fill the session variables from the resulting recordset. But for some reason, the recordset is not returning the correct values for fields of type &#039bit&#039 in SQL server. It is supposed to return &#039TRUE&#039 or &#039FALSE&#039 depending on whether there is 1 or 0 in the DB.<BR><BR>here is the code I am using:<BR>===============<BR>Call openConnection(connect,ConnectionString, adModeRead, adUseServer) &#039returns the connection object in &#039connect&#039<BR><BR>sqlstr = "SELECT * FROM tblCo WHERE tblCo.fldCo = " & PK & ";"<BR>set rst = Server.CreateObject("ADODB.Recordset")<BR>rst.open sqlstr, connect, adOpenForwardOnly, adLockReadOnly<BR><BR>Response.Write(rst.fields("f ld1"))<BR><BR>Session("var1") = rst("fld1")<BR><BR>===========<BR><BR>Strange thing is that it worked perfectly with MS access dB!!!<BR>Even when I just try to output the value of recordset field, some times, its not printing at all. But I noticed one thing, When I used the recordset field atleast once (either in response.write or some other way), before assigning it to session variable, it worked well(I don&#039t know the reason behind it and also I am not sure how far its reliable!). If the take the Response.write(rst("fld1")) out, it may not assign the right value to the session variable.<BR><BR>I am not sure which is causing the problem ADO recordset (OR) SQL server!<BR>I appreciate any kind of help in this regard.<BR><BR>Krishna