Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками / 25 сообщений из 30, страница 1 из 2
18.07.2020, 17:03
    #39981325
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Привет !
Столкнулся с одной неприятной штукой при линковке таблиц с сервера mySql.
Если мы линкуем таблицу, назовем её к примеру Контрагенты и поле НазваниеКонтрагента в ней содержит двойные кавычки , к примеру ООО "Вася Пупкин" , то при фильтрации и выбора такого ООО "Вася Пупкин" (обычной пользовательской фильтрации, в заголовке столбцов на табличной форме к примеру) таблица выдает пустой список строк.
А если написать так: ООО Вася Пупкин, то фильтруется и выбирается нормально.
Никто не сталкивался, не знаете как побороть?
...
Рейтинг: 0 / 0
18.07.2020, 19:11
    #39981358
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
А если сделать прилинкованную таблицу с сервера локальной (чисто аксесовской) то фильтры начинают работать нормально.
...
Рейтинг: 0 / 0
18.07.2020, 21:16
    #39981382
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Докрутил проблему. Костыль создан. Достаточно создать аксесовский запрос, обернуть поле где кавычки либо в Cstr либо в Str и такое поле в табличной форме будет прекрасно фильтровать. Его понятно что нельзя редактировать, но в соседнем, которое не вычисляемое можно править. Подозреваю, что указанная проблема это недоработка драйвера именно в связке с ms access. Но во всяком случае решение есть. Вероятно можно решить более изящно, но пока не нашёл решения лучше
...
Рейтинг: 0 / 0
18.07.2020, 23:44
    #39981400
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Таблица без ключа...Это далеко не весь гемор с ней
...
Рейтинг: 0 / 0
19.07.2020, 00:03
    #39981404
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
sdku, да, вы правы, поведение именно как у таблицы без индексов. Но при линковке индекс там есть. Видимо этого не достаточно. (
...
Рейтинг: 0 / 0
19.07.2020, 00:27
    #39981405
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Сергей Лалов
Видимо этого не достаточно. (


Да не только... кавычки хороши пока они просто так (целиком поле, например как атрибут наименования клиента в шапке документа), но когда они участвуют в составе текстовых данных, да еще при фильтрации, сторонние обработчики могу воспринимать их как начало или конец текста и офигивают от отсутствия привычных разделителей типа & или указателей типа ' , по этому и срабатывают костыли типа

Сергей Лалов
Достаточно создать аксесовский запрос, обернуть поле где кавычки либо в Cstr либо в Str


Тут ты тупо говоришь чужому модулю, что внутри Cstr текст - просто текст и тебе верят на слово, далее содержимое Cstr уже не разбирается на составные и воспринимается полностью тупо как текст...
...
Рейтинг: 0 / 0
19.07.2020, 00:28
    #39981406
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
У меня есть два - три места, где я кавычки тупо выбрасываю при обработке (они ни на что не влияют)
...
Рейтинг: 0 / 0
19.07.2020, 00:29
    #39981407
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Сергей Лалов,
ну так и ищите по ключу,причем в форме
(что Вы собираетесь допустить юзера к таблице?А проще всего не допускать кавычек в поле еще на стадии ввода,а если уж очень хочется добавлять их при отображении(после первого пробела и в конце строки)
...
Рейтинг: 0 / 0
19.07.2020, 00:31
    #39981408
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
sdku
ну так и ищите по ключу,причем в форме


иногда ключ ни о чем, иногда нужно фильтровать именно по тексту и найти множество нужных вхождений
...
Рейтинг: 0 / 0
19.07.2020, 00:48
    #39981411
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
vmag


Тут ты тупо говоришь чужому модулю, что внутри Cstr текст - просто текст и тебе верят на слово, далее содержимое Cstr уже не разбирается на составные и воспринимается полностью тупо как текст...


Да, мне как раз и нужно это на стороне клиента, без разбора, как текст. В рамках списка документов, которые никто не будет править а просто смотреть. Типа отчёта реестра по документам. Костыль зашёл в данном случае.

Замечал странности при линковке сложных вьюх с mysql, с большим количеством групповых операций из разных таблиц. Для себя сделал вывод, что для таких вообще нежелательно проставлять индексы при линковке на стороне аксесса. Просто как есть, статику, без ключей. С ключами вообще каша выходит
...
Рейтинг: 0 / 0
19.07.2020, 00:55
    #39981413
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
sdku
Сергей Лалов,
ну так и ищите по ключу,причем в форме
(что Вы собираетесь допустить юзера к таблице?А проще всего не допускать кавычек в поле еще на стадии ввода,а если уж очень хочется добавлять их при отображении(после первого пробела и в конце строки)


Я видел здесь на форуме пару тем про кавычки, но с другой стороны согласитесь, что юрлицо типа ООО " Ромашка" все таки привычнее и хотелось бы заводить сразу с кавычками. Хотя сторону составной сборки с разными полями под тип компании (ООО) и название я тоже понимаю и поддерживаю. Но для целей базки такое не надо)
...
Рейтинг: 0 / 0
19.07.2020, 01:48
    #39981421
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Сергей Лалов
а что мешает сделать в таблице 2 поля:вид(ООО,ЗАО,ИП и т.д) и наименование(Звезда,Луч и т.д писать без кавычек-позволит избежать ряда проблем в дальнейшем и искать по виду)
Если текст без кавычек то работает зто. ([поиск] свободное поле для ввода образца поиска):
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub поиск_GotFocus()
Me.поиск.SelStart = Len(Me.поиск.Text)
End Sub

Private Sub поиск_KeyUp(KeyCode As Integer, Shift As Integer)
DoCmd.ApplyFilter , "Фамилия like'" & Me.поиск.Text & "*'"
'Me.RecordSource = "select * from Заёмщик where Фамилия like'" & Me.поиск.Text & "*'"
'Me.поиск.SetFocus
End Sub
...
Рейтинг: 0 / 0
19.07.2020, 07:35
    #39981436
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Сергей Лалов
Я видел здесь на форуме пару тем про кавычки, но с другой стороны согласитесь, что юрлицо типа ООО " Ромашка" все таки привычнее и хотелось бы заводить сразу с кавычкам
у тебя будет 1001 контора , которая начинается с ООО - задлянафига вводить для поиска то, что однозначно не позволяет быстро идентифицировать конкретное название?
оптимально вводить вас пуп или просто пуп
потому как такому появиться второй раз очень маловероятно
1447817
...
Рейтинг: 0 / 0
19.07.2020, 07:35
    #39981437
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Сергей Лалов
согласитесь, что юрлицо типа ООО " Ромашка" все таки привычнее

Еще один из вариантов добавить в таблицу поле где будет короткое название фирмы без всяких кавычек и национальных символов.
...
Рейтинг: 0 / 0
19.07.2020, 07:37
    #39981438
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
DarkMan
Еще один из вариантов добавить в таблицу поле где будет короткое название фирмы без всяких кавычек и национальных символов.
это уже слишком - это уже отсылка в начало 90, ко второму аксу
...
Рейтинг: 0 / 0
19.07.2020, 11:01
    #39981454
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
вадя
это уже слишком

И в чем же недостаток ? Только в том , что его использовали в 90-х? :))
...
Рейтинг: 0 / 0
19.07.2020, 11:31
    #39981456
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
DarkMan
И в чем же недостаток ? Только в том , что его использовали в 90-х? :))
дополнительное поле,
что подразумевает дополнительный ввод, возможные ошибки по вводу в это поле
у меня был подобный случай такого наблюдения(я его уже многократно описывал тут)
правильнее иметь одно поле с полным официальным наименованием со всеми кавычками и прочими атрибутам
я дал ссылку - обрати внимание на год.
данный метод поиска проверен на многих проектах, в том числе и веб
поиск нормально проходит вплоть до 10 000 000 записей
...
Рейтинг: 0 / 0
19.07.2020, 12:11
    #39981465
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
вадя
данный метод поиска проверен на многих проектах,
убедительно , но не на все 100 . :))
...
Рейтинг: 0 / 0
19.07.2020, 12:42
    #39981470
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Проверил: нормально работает и с кавычками и без , но в обработке GotFocus ( 22169874 ) возвращает курсор в конец текста шаблона-когда пытаешься набрать "ООО в" (игнорирует пробел-это преодолевается-если код клавиши=32 то SelStart=len(Me.ctl.text) + 1
Код: vbnet
1.
2.
3.
...
DoCmd.ApplyFilter , "ctl like'*" & Me.poisk.Text & "*'"
...

правда не знаю как все это будет себя вести в табличной (уже не таблица,но еще не полноценная форма)проверял на ленточной,которая после небольшой работы в конструкторе (если есть необходимость, выглядит как табличная). Табличными формами не пользуюсь от слова совсем
...
Рейтинг: 0 / 0
19.07.2020, 12:58
    #39981471
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
РыСы:
Вы столкнулись с одной из многих "недоформенностей" табличной формы
...
Рейтинг: 0 / 0
19.07.2020, 13:03
    #39981472
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Вадя, спасибо за примеры!
...
Рейтинг: 0 / 0
19.07.2020, 13:05
    #39981473
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
С обернутым в Cstr нормально работает тоже. При большом количестве контрагентов не знаю как будет работать , но тестировал при сотке ,нормально)
...
Рейтинг: 0 / 0
19.07.2020, 13:19
    #39981474
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
Сергей Лалов,

фильтрация и поиск по форме, на линкованных таблицах, очень медленный процесс.(на тысяче ужо будете плакать)
...
Рейтинг: 0 / 0
19.07.2020, 14:07
    #39981487
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
ROI
Сергей Лалов,

фильтрация и поиск по форме, на линкованных таблицах, очень медленный процесс.(на тысяче ужо будете плакать)


По рабочей базе 100 контрагентов не наберется и за 7 лет) В рамках данной бд нормально)

Но если развивать тему,только осознал, можно попробовать (я сам еще не тестировал):

На событие формы ApplyFilter:
Код: vbnet
1.
2.
3.
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
....
End Sub



передавать в сохраненную процедуру/функцию список индексов (значений ключевых полей) отфильтрованных значений, строить запроc/вью на сервере с учетом переданных значений в процедуру ("SELEСT * FROM table WHERE my_id IN MyStoredFunction") и выводить назад на форму. Думаю скорость будет нормальная.
Но я ни разу не пробовал передавать на сервер массив значений, не знаю как, наверное в виде текста/строки, и там распарсивать в функции.
...
Рейтинг: 0 / 0
19.07.2020, 14:49
    #39981500
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками
А вообще не морочте голову:
Равно "ООО "вася""вернет запись ID 1
Не равно "ООО "вася"" 2,3,4
Содержит "ООО "вася"" 1
Не содержит "ООО "вася"" 2,3,4
Все правильно-а чё Вы хотите?
Но тем не менее то что некоторые процедуры VBA работают во всех формах кроме табличных-факт
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Линковка таблиц mysql, странное поведение фильтра формы на записи с кавычками / 25 сообщений из 30, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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