Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#231<< #232 |
СОДЕРЖАНИЕ Разрешение проблем подключения к SQL Server 2000 (окончание)
По материалам статьи Microsoft:
How to troubleshoot connectivity issues in SQL Server 2000
Введение Тестирование разных способов подключения к экземпляру SQL Server Если у Вас возникают проблемы при подключении к SQL Server, можно воспользоваться одним из следующих способов, чтобы определить причину возникновения этой проблемы:
Если проблема подключения не разрешилась с помощью методов, описанных в разделе "Тестирование разных способов
подключения к экземпляру SQL Server", используйте утилиту Network Monitor для анализа трассы сетевого обмена.
148942 How to capture network traffic with Network Monitor (Запись сетевого трафика с помощью сетевого монитора) Для получения более детальной информации можно использовать SQL Profiler, а также Network Diagnostics Tool, если компьютер, на котором работает SQL Server, не является одним из узлов кластера. Для получения информации о том, как использовать Network Diagnostics Tool, изучите следующую статью: 321708 HOW TO: Use the Network Diagnostics Tool (Netdiag.exe) in Windows 2000 (Использование Network Diagnostics Tool (Netdiag.exe) в Windows 2000) Для изучения проблем связанных с подключением к SQL Server, предлагаются следующие статьи из Базы Знаний Майкрософт:
812817 Support WebCast: Microsoft SQL Server 2000: Troubleshooting connectivity Информация в статье применима к Microsoft SQL Server 2000 Standard Edition. Поддержка XML в Microsoft SQL Server 2005 (продолжение)
По материалам статьи Shankar Pal, Mark Fussell и Irwin Dolobowsky:
XML Support in Microsoft SQL Server 2005
Введение Поддержка XML в SQL Server CLR Используя поддержку SQL Server CLR, вы можете писать логику на серверной стороне в управляемом коде для поддержки бизнес-правил. Бизнес-логика может быть добавлена в данные XML следующими способами: Вы можете писать функции SQLCLR в управляемом коде, в который вы передаете значения XML, и использовать возможности обработки XML, предоставленные пространством имен System.Xml. Ниже показан пример трансформации XSL в данные XML. Вы также можете разложить XML на один или больше управляемых классов и оперировать ими, используя управляемый код. Вы можете написать хранимые процедуры и функции T-SQL, которые вызывают обработку столбца XML. Пример: применение трансформации XSL Рассмотрим функцию CLR TransformXml(), которая принимает в качестве аргумента экземпляр XML и трансформацию XSL, применяет трансформацию к данным XML, и возвращает измененный XML. Схематично функция, написанная на C#, выглядит следующим образом: public static SqlXml TransformXml (SqlXml XmlData, string xslPath) { // Load XSL transformation XslTransform xform = new XslTransform(); XPathDocument xslDoc = new XPathDocument (xslPath); xform.Load (xslDoc.CreateNavigator(),null); // Load XML data XPathDocument xDoc = new XPathDocument (XmlData.CreateReader()); XPathNavigator nav = xDoc.CreateNavigator (); // Return the transformed value SqlXml retSqlXml = new SqlXml (xform.Transform(nav, null)); return (retSqlXml); } Когда сборка зарегистрирована и создана пользовательская функция T-SQL SqlXslTransform(), соответствующая функции CLR TransformXml(), то эта функция может быть вызвана из T-SQL следующим запросом: SELECT SqlXslTransform (xCol, 'C:\yukon\xsltransform.xsl') FROM T WHERE xCol.exist('/book/title/text()[contains(.,"custom")]') =1 Результат запроса содержит набор записей трансформированного XML. SQLCLR открывает новые возможности по разложению данных XML в таблицы и запрашиванию данных XML, используя управляемые классы в пространстве имен System.Xml. Дополнительную информацию вы сможете найти в системах справки SQL Server 2005 и Visual Studio® 2005. Обработка XML на стороне клиента в SQL Server 2005 Поддержка XML на стороне клиента Поддержка ADO.NET XML в .NET Framework V2.0 Тип XML рассматривается как класс SqlXml в пространстве имен System.Data.SqlTypes метода SqlDataReader.GetSqlXml(). Вы можете получить XmlReader из объекта SqlXml, используя функцию SqlXml.CreateReader(). Имя коллекции схем XML, состоящее из трех частей, которая типизирует столбец XML, можно получить из метаданных столбца XML (используя GetSchemaTable() или GetSqlMetaData (int) объекта SqlDataReader) в виде трех свойств, содержащих имя базы данных (XmlSchemaCollectionDatabase), реляционную схему (XmlSchemaCollectionOwingSchema) и коллекцию схем XML (XmlSchemaCollectionName). Новый набор данных схемы XMLSCHEMA доступен пользователям для получения схем XML с сервера. Набор данных XMLSCHEMA содержит три столбца для коллекции схем XML, пространства имен, и самого содержимого схемы XML. Следующие примеры показывают код для управляемого доступа к данным XML. Пример: встроенный доступ к данным XML Код на C#, показанный ниже, демонстрирует, как можно получить доступ к данным XML из встроенного провайдера. Код для доступа клиента SQL требует встроенного доступа. using System; using System.Xml; using System.Data; using System.Data.SqlTypes; using System.Data.SqlServer; class xmldtADONETReadAccessInProc { static void ReadXmlDataType () { // Встроенное соединение с сервером SqlConnection conn = SqlContext.GetConnection(); // Подготовка запроса для выборки данных XML SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "SELECT xCol FROM docs"; // Выполнение запроса и получение данных SqlDataReader r = cmd.ExecuteReader(); r.Read(); // Доступ к столбцу с данными XML в наборе данных SqlXml xml = r.GetSqlXml(0); new XmlTextWriter(Console.Out).WriteNode( xml.CreateReader(), true); } } Пример: обновление столбца XML с использованием клиентского провайдера SQL Код ниже демонстрирует метод WriteXmlDataType(), который изменяет значение столбца XML, используя клиентский провайдер SQL. Код для встроенного провайдера такой же. using System; using System.Xml; using System.Data; using System.Data.SqlTypes; using System.Data.SqlClient; class xmldtADONETUpdateAccess { static void WriteXmlDataType () { // Соединение с сервером SqlConnection conn = new SqlConnection("server=server1;" + " database=XMLtest; Integrated Security=SSPI"); conn.Open(); // Обновление столбца XML на сервере SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "UPDATE docs SET xCol=@x WHERE id=1"; // Установка значения параметра XML SqlParameter p = cmd.Parameters.Add("@x", SqlDbType.Xml); p.Value = new SqlXml(new XmlTextReader("<hello/>", XmlNodeType.Document, null)); // Выполнение обновления и закрытие соединения cmd.ExecuteNonQuery(); conn.Close(); } } Встроенный клиентский доступ к SQL В провайдере OLE DB нового встроенного доступа к SQL (SQLNCLI) столбец XML может быть получен как в виде строки Unicode (DBTYPE_XML, DBTYPE_BSTR, DBTYPE_WSTR и DBTYPE_VARIANT), так и в виде потока символов Unicode, используя ISequentialStream. По умолчанию используется DBTYPE_XML. Имя коллекции схем XML, состоящее из трех частей, передается тремя новыми столбцами в наборе данных схемы COLUMNS, возвращаемом IDBSchemaRowset::GetRowset(): столбцом SS_XML_CATALOGNAME, передающим название каталога; столбцом SS_XML_SCHEMANAME, передающим имя реляционной схемы, в которой размещается коллекция схем XML, и столбцом SS_XML_SCHEMACOLLECTIONNAME, передающим имя коллекции схем XML. Эти имена принадлежат типу DBTYPE_WSTR. Столбцы имеют значение NULL для нетипизированного столбца XML. Такие же изменения были сделаны в наборе данных схемы PROCEDURE_PARAMETERS и в IColumnRowset:GetColumnRowset(). Чтобы получить содержимое коллекции схем XML, клиент может создать отдельный доступ к серверу, используя эти имена в вызове XML_SCHEMA_NAMESPACE(), и получить схемы XML в виде данных XML. Также IDBSchemaRowset с новым набором данных схемы SS_XMLSCHEMA возвращает имя каталога, имя реляционной схемы, имя коллекции схем XML, пространство имен и схему XML. Для доступа ODBC с помощью SQLNCLI, данные XML конвертируются в символьные данные Unicode, называемые SQL_SS_XML. Имя коллекции схем XML, состоящее из трех частей, передается через SqlColAttribute для столбца XML CharacterAttributePtr. Идентификаторы полей следующие: SQL_DESC_SS_XML_SCHEMA_CATALOG_NAME, SQL_DESC_SS_XML_SCHEMA_SCHEMA_NAME и SQL_DESC_SS_XML_SCHEMA_COLLECTION_NAME для имен базы данных, реляционной схемы и коллекции схем XML, соответственно. Пользователи должны устанавливать сервер базы данных или клиентские инструменты SQL Server 2005, чтобы получить встроенный клиентский доступ к SQL. Доступ OLE DB к данным XML, с использованием MDAC 2.8 ADO, невозможен. Конвертация SQLXML между XML и реляционными схемами Вы можете создать логические представления XML Ваших реляционных данных, используя технологию конвертации SQLXML. Представление XML, также называемое к "конвертацей" или к "аннотируемой схемой", создается с помощью добавления специальных аннотаций к существующей схеме XSD. После этого другие технологии SQLXML могут использовать эту аннотируемую схему для трансформации запросов и обновлений логического представления XML в запросы и обновления реляционных таблиц: Когда представление XML комбинируется с запросом XPath, SQLXML сгенерирует запрос FOR XML, чтобы найти запрошенные данные и оформить их, как определено в схеме. Апдейтаграммы SQLXML отражают изменения в экземпляре XML, который, будучи совмещенным с аннотируемой схемой, вносит эти изменения в реляционную структуру с оптимистической блокировкой, чтобы удостовериться, что обновились нужные данные. SQLXML Bulkload использует представление XML, чтобы "разрезать" данные XML на реляционные таблицы. Для дополнительной информации обратитесь к документации по SQLXML. Создание представления XML реляционных таблиц Чтобы создать представление XML базы данных, начните со схемы XSD для ваших данных XML. Строки таблицы/представления базы данных будут конвертироваться в элементы сложного типа в схеме. Значения столбцов в базе данных конвертируются в атрибуты или элементы простого типа. По умолчанию, если не задано явных аннотаций, SQLXML предполагает, что элементы сложного типа будут конвертироваться в таблицы, а элементы простого типа и атрибуты - в столбцы. Это работает, только если имена элементов и атрибутов точно соответствуют именам таблиц и столбцов в Вашей базе данных. Если имя элемента/атрибута не такое, как имя таблицы/представления или имя столбца, с которым он конвертируется, то должна быть создана явная конвертация. Следующие аннотации используются для определения конвертации между элементом или атрибутом в документе XML и таблицей (представлением) или столбцом в базе данных:
* sql:relation - конвертирует элемент XML в таблицу базы данных. Конвертация отношений для создания иерархий в представлениях XML В Вашей базе данных таблицы могут быть связаны внешними ключами. В XML эти же отношения отражаются в виде иерархии элементов. Чтобы создать правильную иерархию в Вашей конвертации, Вы должны определить, как элементы связаны между собой. Вы можете установить эти связи между элементами схемы конвертации, используя аннотацию sql:relationship. В этой аннотации Вы можете определить родительские и дочерние таблицы, как и столбцы в каждой из них, которые должны использоваться для выполнения объединения. Тогда SQLXML будет использовать эту информацию для создания правильной иерархии для вашей конвертации. Использование столбца overflow для хранения нераспределенных данных Конвертация работает, когда Ваши данные XML имеют постоянную структуру. Однако, могут быть некоторые данные в Вашем XML, которые или не структурированы, или не конвертируются в специальный столбец. Для хранения этих данных и дальнейшего их получения может использоваться аннотация sql:overflow. Аннотация sql:overflow определяет столбец, в котором хранится вся нераспределенная информация, и из которого ее можно получить запросами. Столбец overflow также подходит для расширения XML без необходимости добавления нового столбца в Вашу базу данных. Элементы и атрибуты могут быть добавлены к Ввашей структуре XML в любое время без добавления столбцов для их хранения в базе данных. Они просто будут храниться в поле overflow, и могут быть получены в нужное время. Дополнительная информация Для дополнительной информации по созданию представлений XML и примеров конвертации смотрите "Создание представлений XML с помощью аннотируемых схем XSD". ОКОНЧАНИЕ СЛЕДУЕТ Статьи на русском языке
XQuery и SQL - в чем разница
View Security as the Basis for Data Warehouse Security Самые популярные темы недели
Новые упражнения на http://sql.ipps.ru
Дефрагментировать или нет ? |
#231<< #232 |
Вопросы, предложения, коментарии, замечания, критику и т.п. оставляйте Виталию Степаненко и Александру Гладченко в форуме: Обсуждение рассылки
|
http://subscribe.ru/
http://subscribe.ru/feedback/ |
Подписан адрес: Код этой рассылки: comp.soft.winsoft.sqlhelpyouself |
Отписаться |
В избранное | ||