Я пытаюсь использовать свойство фильтра ADO для фильтрации набора записей с помощью столбца uniqueidentifier
. Я подключаюсь к SQL Server 2008 с использованием ADO в Windows 7, используя провайдера SQLOLEDB.1
.Каковы правила использования фильтра ADO Recorset с столбцом уникального идентификатора SQL Server?
Я создаю набор записей и использую его для отправки SQL-запроса на сервер. Затем я установил свойство ADO Recordset.Filter
. Я получаю ошибки независимо от того, что я пробовал для фильтра.
Если я пытаюсь
[column name] = '5D9C83FB-E758-0D4B-B1C7-E751D951B67C'
я
фильтр не может быть открыт.
Если я пытаюсь
[column name] like '%5D9C83FB-E758-0D4B-B1C7-E751D951B67C%'
я
строку Invalid класса.
(Примечание: Я оставил любые необходимые двойные кавычки для ясности я могу искать другие типы строковых столбцов, поэтому цитирую не проблема.).
Я использую Delphi XE2, но я думаю, что это, вероятно, не актуально, поскольку я создаю свой объект ADO напрямую, вместо того, чтобы использовать любой из их кода оболочки. У меня нет проблем с свойством Filter
на любом из столбцов типа string, всего uniqueidentifier
.
Мой основной вопрос в том, можете ли вы сделать эту работу, как вы это делаете (не до преобразования столбца в строку во время запроса)? Более общий вопрос заключается в том, какие правила используют колонки uniqueidentifier
с свойством Filter
. Я не мог найти ничего подходящего.
Вы попробовали '' {5D9C83FB-E758-0D4B-B1C7-E751D951B67C} ''? –
См. Комментарий к вашему ответу ниже. – jep