我遇到了一個問題,我正在查看使用SqlXmlCommand對象從數據庫中獲取數據的遺留應用程序。有有正在使用的桌子,和.xsd文件哪些領域,它們之間的關係等,我們有是它工作的大部分時間,但不是所有的問題。我想知道是否有一種方法來檢查在Sql Server上實際運行的是什麼。我沒有安裝SQL分析器,因此選項不存在。視圖SQL服務器上的SqlXmlCommand.ExecuteCommand()
代碼如下:
SQLXML: error loading XML result (XML document must have a top level element.)
我們認爲,是導致該XML不一些數據異常:
SqlXmlCommand xcmd = new SqlXmlCommand(DataAccess.OleDbConnectionString);
xcmd.CommandType = SqlXmlCommandType.XPath;
xcmd.SchemaPath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"myXsd.xsd"));
xcmd.XslPath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, String.Format(@"myXsl.xsl", ReportType)));
xcmd.CommandText = "id[@PK=$PK]";
SqlXmlParameter p = xcmd.CreateParameter();
p.Name = "@PK";
p.Value = Id;
using (Stream s = xcmd.ExecuteStream()) { ... }
這與錯誤的ExectureStream()炸燬生成正確,這就是爲什麼我們想看看究竟是什麼運行。
乾杯
即使你沒有SQL事件探查器安裝,你仍然可以運行服務器端的痕跡或使用不擴展事件。設置其中一個痕跡可能有點棘手。一旦你完成了它,你一定會再次使用它很多次。我認爲這是值得的。 –