SqlCommand.ExecuteReader cannot parse TDS response


i building server respond custom sql batch messages. have constructed various tds messages , responses based on official ms-tds documentation. example, able construct table result based on https://msdn.microsoft.com/en-us/library/dd341261.aspx. these messages works fine on ssms , sqlcmd.

however, when try use sqlcommand.executereader on c# client, error:

system.invalidoperationexception occurred hresult=-2146233079
message=internal connection fatal error. error state: 15, token : 0
source=system.data stacktrace: @ system.data.sqlclient.tdsparser.tryrun(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj, boolean& dataready)

using tds proxy, ran simple select returning table single int value on proper sql server, bytes returned way longer 1 documented @ msdn:

04-01-00-3d-00-37-01-00-e3-03-00-12-00-00-81-01-00-00-00-00-00-00-00-09-00-26-04-07-41-00-67-00-65-00-6e-00-74-00-4e-00-6f-00-d1-04-e3-95-0e-00-fd-10-00-c1-00-01-00-00-00-00-00-00-00-6e-00-67-00-65-00-64-00-20-00-64-00-61-00-74-00-61-00-62-00-61-00-73-00-65-00-20-00-63-00-6f-00-6e-00-74-00-65-00-78-00-74-00-20-00-74-00-6f-00-20-00-27-00-54-00-65-00-73-00-74-00-2d-00-44-00-42-00-2d-00-31-00-27-00-2e-00-0b-43-00-43-00-5a-00-59-00-2d-00-57-00-49-00-4e-00-32-00-4b-00-36-00-00-01-00-00-00-e3-08-00-07-05-09-04-d0-00-34-00-e3-17-00-02-0a-75-00-73-00-5f-00-65-00-6e-00-67-00-6c-00-69-00-73-00-68-00-00-ab-72-00-47-16-00-00-01-00-27-00-43-00-68-00-61-00-6e-00-67-00-65-00-64-00-20-00-6c-00-61-00-6e-00-67-00-75-00-61-00-67-00-65-00-20-00-73-00-65-00-74-00-74-00-69-00-6e-00-67-00-20-00-74-00-6f-00-20-00-75-00-73-00-5f-00-65-00-6e-00-67-00-6c-00-69-00-73-00-68-00-2e-00-0b-43-00-43-00-5a-00-59-00-2d-00-57-00-49-00-4e-00-32-00-4b-00-36-00-00-01-00-00-00-ad-36-00-01-74-00-00-04-16-4d-00-69-00-63-00-72-00-6f-00-73-00-6f-00-66-00-74-00-20-00-53-00-51-00-4c-00-20-00-53-00-65-00-72-00-76-00-65-00-72-00-00-00-00-00-0d-00-0f-a1-e3-13-00-04-04-38-00-30-00-30-00-30-00-04-34-00-30-00-39-00-36-00-ae-01-2e-00-00-00-00-09-00-60-81-14-ff-e7-ff-ff-00-02-02-07-01-04-01-00-05-04-ff-ff-ff-ff-06-01-00-07-01-02-08-08-00-00-00-00-00-00-00-00-09-04-ff-ff-ff-ff-04-01-00-00-00-01-ff-fd-00-00-00-00-00-00-00-00-00-00-00-00-74-31-36-d9-df-c6-56-ec-ac-f9-4a-8d-2b-4e-92-ad-7b-7d-09-46-2c-e9-7c-3f-78-47-9a-39-76-c4-17-86-19-9a-07-94-4d-d8-4b-d8-a2-04-fe-57-b7-bc-33-47-cf-f6-62-37-b8-a4-af-31-12-6f-bf-a0-c9-e4-7c-16-57-44-2b-1e-5b-07-04-3c-22-95-3f-48-b9-46-f1-86-2b-3c-86-d6-83-50-f4-09-cd-79-78-d1-40-e8-3f-0c-76-29-b9-3b-8e-57-af-a8-bd-34-b8-48-5e-83-e8-81-ed-3d-b0-6f-7c-16-3b-ba-ed-5a-20-64-37-20-64-b9-25-02-03-01-00-01-30-0d-06-09-2a-86-48-86-f7-0d-01-01-05-05-00-03-82-01-01-00-4c-95-8b-d2-c3-af-cb-df-65-18-19-b4-4b-68-c5-e8-5d-8b-a0-f9-c3-f4-f6-a3-9b-51-1c-2f-df-83-14-8a-70-85-52-d1-a6-cc-eb-34-46-f6-a5-fa-fe-95-00-51-e3-91-66-df-d2-71-bb-43-4b-0f-41-89-f4-56-a8-4f-b1-1f-6b-1d-67-3b-68-97-98-b6-a7-b2-16-91-47-ea-25-d5-95-5c-fa-29-a5-c7-13-da-03-c4-a6-1b-39-ec-f7-1c-70-69-f6-48-30-55-af-23-b8-fc-fc-4c-23-cf-76-86-b3-57-d3-5f-6d-18-d0-e3-e7-30-eb-ab-36-12-f2-37-11-47-af-bc-42-55-17-cd-8e-da-24-f2-88-b0-28-35-20-0c-04-f1-77-a6-61-22-75-ed-84-86-e0-f0-af-12-c5-37-58-8a-d6-ba-fc-e4-1c-4c-49-5e-15-75-c5-c9-90-9d-88-68-ce-9e-ee-06-f5-a0-cd-1c-7c-09-e8-37-e2-9c-7b-c3-c2-4f-31-bd-88-48-23-e6-65-5a-c7-7d-1a-e2-0f-ba-8f-1e-a1-7c-00-7a-cf-98-4b-b7-86-ad-c3-97-c1-7f-3f-c4-86-02-54-f7-5c-a0-e2-53-f0-9e-ed-26-13-fc-15-f2-b2-6d-d9-ad-45-ad-82-90-0c-00-01-28-03-00-1d-20-ed-99-94-f9-10-29-c3-c0-1e-a1-08-aa-cf-0b-5d-49-13-36-f2-2c-2f-1c-dd-0a-f3-ca-e9-0b-39-10-03-45-02-01-01-00-bf-92-c0-8c-c9-61-bb-a8-d2-22-67-7d-b1-dc-da-9f-67-1a-4e-97-9f-ec-b3-05-c6-84-bc-51-1b-4c-79-9e-5e-7d-72-7f-6d-32-bb-90-43-0a-4a-7d-f3-f0-40-96-ef-4a-88-aa-53-71-77-e0-87-bb-2e-79-08-95-c5-6f-f4-10-08-f0-50-fa-41-77-fe-ea-ff-17-ed-25-05-ea-df-96-87-a4-3b-ad-ac-b6-e9-fc-f3-6b-00-a8-04-d4-ed-ff-51-24-78-a6-44-f4-59-ff-85-0f-da-13-6e-2c-f9-b7-43-c7-d9-55-31-43-d0-96-67-b5-2e-fe-13-5e-a4-d3-de-48-4a-b0-48-04-a1-48-d7-f5-e4-12-bb-08-ea-a7-dc-04-03-87-40-93-2c-32-7d-73-4f-fc-82-c5-34-55-5b-93-ad-71-74-7f-18-a7-7c-97-f5-12-81-7d-d9-b5-50-32-e8-f1-e6-4d-28-d3-72-83-02-52-76-45-6b-e9-70-0b-56-90-40-66-6b-1f-d7-a6-b2-6a-fe-00-b3-a8-36-8c-90-b3-63-f9-c1-74-d4-9f-0b-b7-33-0b-30-60-01-73-e3-2a-69-86-42-45-c9-ed-0e-6a-cf-39-a4-69-ed-03-e7-eb-14-cf-cf-3d-a7-49-43-f7-16-a2-0e-00-00-00-00-0...

comparing example @ documentation, there few unexplained bytes, example:

e3-03-00-12-00-00

right after packetheader block. undocumented in ms-tds.

also, after colmetadata token, count, usertype, , flags, starts 09, not type_info specified here: https://msdn.microsoft.com/en-us/library/dd305325.aspx, when supposed int datatype.

other that, there lot of other data after initial response not documented well.

can shed light on this?



SQL Server  >  .NET Framework inside SQL Server



Comments

Popular posts from this blog

Conditional formatting a graph vertical axis in SSRS 2012 charts

Register with Power BI failed

SQL server replication error Cannot find the dbo or user defined function........