|
Запрос из 1С к акцессу. Как в запросе правильно указать условие? | ☑ | ||
---|---|---|---|---|
0
arsik
гуру
13.10.14
✎
18:12
|
Есть таблица в акцессе в ней есть поле с именем файла. Мне нужно вытащить его расширение. А имена могут быть такие:
131014b28784631594.13 131014b15500651506.879.TXT 131014b28897995897.3 131014b15500651506.879.T Мне нужно все после последней точки. Как можно в запросе такое условие указать и можно ли? На текущий момент у меня стоит фильтр который последние записи только достает (и имена я уже внутри 1С разбираю), но нужно будет каждый раз все записи доставать и в 1С это долго получается. Сейчас: "SELECT FILES.NAME, FILES.ID FROM FILES WHERE FILES.NAME Like '______b%'" |
|||
1
arsik
гуру
13.10.14
✎
18:27
|
Забыл добавить, запрос к базе акцесса формирую через OLEDB.
|
|||
2
Wobland
13.10.14
✎
18:29
|
а %b - это что? да пофих, и разбирай свои имена внутри 1с
|
|||
3
arsik
гуру
13.10.14
✎
18:31
|
(2) Like '______b%' - это все имена которые подходят по выражению 8 знаков до буквы "b" и без разницы сколько знаков после.
Долго разбирать внутри 1С. |
|||
4
Wobland
13.10.14
✎
18:35
|
(3) то есть, так же. да пофих, и разбирай свои имена внутри 1с
|
|||
5
МихаилМ
13.10.14
✎
18:42
|
обработайте выборку на клиенте. экономия трафика мегабайтов и мегабитов бессмыссленна.
можно намисать ф-цию на vba. либо по аналогии v8: Как можно определить длину строк в запросе либо v8: Поиск в строке |
|||
6
arsik
гуру
13.10.14
✎
18:48
|
(5) Да. придется наверно на клиенте обрабатывать
|
|||
7
фобка
13.10.14
✎
19:28
|
(3) для аксесса "????????b*"
|
|||
8
spectre1978
13.10.14
✎
20:48
|
(5) можно намисать ф-цию на vba.
из ADO так просто не получится. Дело в том, что у Jet'а начиная с версии 4 есть такое понятие как небезопасные выражения. Довольно многие встроенные функции VBA и, кажется, написанные на VBA и хранимые в модулях БД тоже являются таковыми. Удаленно через SQL-запросы и ADO-провайдера их вызывать нельзя, Jet сообщает что не существует такой функции. Хотя локально в Access все работает. |
|||
9
spectre1978
13.10.14
✎
21:00
|
(0) В самом аксесе (2003) танцует вот так:
select mid (filename, instrrev (filename, '.')+1, len (filename)) from tab правда, тут а) не учитывается случай отсутствия расширения вообще; б) я не знаю, является ли функция instrrev безопасной и будет ли она работать через ADO. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |