powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Делаю фильтр, столкнулся с проблемой
9 сообщений из 9, страница 1 из 1
Делаю фильтр, столкнулся с проблемой
    #32465637
Фотография =viT=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работаю с ADO 2.0 Хотел отфильтровать имеющийся рекордсет выражением:
strFilter = "CAST([КодКлюча] AS char(6)) LIKE '%101%'"
Выдает ошибку 3001 - Arguments are of the wrong type, are out of acceptable range or....
КодКлюча - Int
В EnterpriseManger для MS SQL2000 параллельно тестирую выражение с той же таблицы:
Select КодКлюча, Организация, Подразделение, ФИО from Абонент
where CAST([КодКлюча] as varchar(6) ) LIKE '101%'

как ни странно - работает, выдает строки.
Подскажите как обойти эту проблему, если необходимо работать с числовыми полями как со строковыми...
...
Рейтинг: 0 / 0
Делаю фильтр, столкнулся с проблемой
    #32465682
Alex_2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если речь идет о свойстве Filter объекта Recodset, то функция CAST ему не известна. Необходимо использовать явное преобразование с помошью функции CStr().
...
Рейтинг: 0 / 0
Делаю фильтр, столкнулся с проблемой
    #32466363
Фотография =viT=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могли бы вы привести работающий пример RS.filter для числового поля имеющего в строке фильтра функцию CStr и LIKE '%mynumber%' ?
...
Рейтинг: 0 / 0
Делаю фильтр, столкнулся с проблемой
    #32466636
Alex_2003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С удовольствием :)

Код: plaintext
rst.Filter =  "IntegerField LIKE '" & CStr(rst.Fields("IntegerField").Value) & "'" 
...
Рейтинг: 0 / 0
Делаю фильтр, столкнулся с проблемой
    #32466997
Фотография =viT=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за работающий пример, НО в примере не задействованы символы %, что явлеятся ключевым моментом в первом моем сообщении (там например должны были выдаваться записи со следующими значениями числового поля: 101, 1011, 10109 итп).\r
Как я уже нарыл в MSDN .filter не понимает выражения следующего вида:\r
1) (Field1 + Field2) < 5000\r
2) FieldX IN (1, 2, 3) AND FieldY IN (\'A\', \'B\', \'C\')\r
3) FieldX IN (SELECT id FROM Table2)\r
4) Description = "#3 Board 4" \'"2\'x2"4\'"\r
Особенно интересен третий случай, поскольку сейчас я мучаю Data Form Wizard (http://]/topic/84259) и фильтр для рекордсета я могу задать толко к полям принадлежащим ParentCMD, а хотелось бы взять критерий - поле из подчиненной таблицы...
...
Рейтинг: 0 / 0
Делаю фильтр, столкнулся с проблемой
    #32467769
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подобные символы (%) в LIke фильтр тоже не понимает, нужно обходить через
< and >

Magnus
...
Рейтинг: 0 / 0
Делаю фильтр, столкнулся с проблемой
    #32468431
Фотография =viT=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел ввиду символ * . Помимо этого была выявлена бага, возможно зависящая от SHAPE
генерируемых Wizard'ом.
В form_onload следующий код срабатывает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
  Set adoPrimaryRS = New Recordset
  adoPrimaryRS.ActiveConnection = db
  adoPrimaryRS.CursorType = adOpenStatic
  adoPrimaryRS.LockType = adLockOptimistic
  
  query_allrecords =  "SHAPE {SELECT [КодКлюча], [ФИО], [Должность], [Организация], "  _
    &  "[Подразделение], [Единица], [Здание], [Комната], [Дата заполнения], "  _
    &  "[Дополнение] FROM Абонент ORDER BY КодКлюча} AS ParentCMD "  _
    &  "APPEND ({SELECT [КодКлюча] AS [КодКлючаТ], [Телефон], [АТС], "  _
    &  "CASE WHEN [Доп]=1  THEN 'True' ELSE 'False' END AS [Доп] " _
    &  "FROM Телефоны} AS ChildCMD RELATE [КодКлюча] TO [КодКлючаТ]) AS ChildCMD" 
  
  query_filter =  "SHAPE {SELECT [КодКлюча], [ФИО], [Должность], [Организация], "  _
    &  "[Подразделение], [Единица], [Здание], [Комната], [Дата заполнения], "  _
    &  "[Дополнение] FROM Абонент "  _
    &  "WHERE [КодКлюча] IN (SELECT [КодКлюча] FROM Телефоны WHERE Телефон = 5110 )" _
    &  "ORDER BY КодКлюча} AS ParentCMD "  _
    &  "APPEND ({SELECT [КодКлюча] AS [КодКлючаТ], [Телефон], [АТС], "  _
    &  "CASE WHEN [Доп]=1  THEN 'True' ELSE 'False' END AS [Доп] " _
    &  "FROM Телефоны} AS ChildCMD RELATE [КодКлюча] TO [КодКлючаТ]) AS ChildCMD" 
    
  adoPrimaryRS.Source = query_filter
  adoPrimaryRS.Open
  adoPrimaryRS.Close
  adoPrimaryRS.Source = query_allrecords
  adoPrimaryRS.Open
  adoPrimaryRS.Requery

А в обработчике кнопки код
Код: plaintext
1.
2.
3.
    adoPrimaryRS.Close
    adoPrimaryRS.Source = query_filter
    adoPrimaryRS.Open
    adoPrimaryRS.Requery

Уже не работает, выдает ошибку -2147217915 Object was open
на первой же строке кода: adoPrimaryRS.CLose =(((
Кто-нибудь знает что-за бодяга? На работе были советы - не использовать SHAPEs, но тогда столько коду
прийдется самому писать (что при оставшемся времени до сдачи проекта, просто недопустимо)!

PS: Что за ерунда с шириной этого сообщения?
...
Рейтинг: 0 / 0
Делаю фильтр, столкнулся с проблемой
    #32468432
Фотография =viT=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это я preview неправильно воспринял =)
...
Рейтинг: 0 / 0
Делаю фильтр, столкнулся с проблемой
    #32468437
Фотография =viT=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причину этой "бодяги" прочувствовал и обнаружил =)
Тестовые проекты конечно же rulez =) Сделал тестовый проект с одной формой и кнопкой, и поприменял те же операции Close, Open, Requery...
Ошибок не было!
Поставил DataGrid и TextBox -> ошибка появилась.
В итоге, вобработчике кнопки, заменил код на следующий:
Код: plaintext
1.
2.
3.
4.
5.
  adoPrimaryRS.Close
  Set DataGrid1.DataSource = Nothing
  adoPrimaryRS.Source = query_filter
  adoPrimaryRS.Open
  Set DataGrid1.DataSource = adoPrimaryRS( "ChildCMD" ).UnderlyingValue
  adoPrimaryRS.Requery

Надеюсь эта информация кому-нибудь понадобится. =)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Делаю фильтр, столкнулся с проблемой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]