powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Резервные слова в полях базы
9 сообщений из 9, страница 1 из 1
Резервные слова в полях базы
    #33004962
Люди, помогите есть DBF в котором поле VAL - резервное слово.
Как мне по нему создать индекс.
Пробовал так:
s='alltrim(LS_NOM)+alltrim(VAL)'
index on &s to is.IDX

При выполнении пишет не найдена переменная VAL и индекс не создает
Пробовал:
index on alltrim(LS_NOM)+alltrim('VAL') to is.IDX
создает файл индекса но он пустой и программа не работает
Как в таких ситуациях поступать. Переименовывать поля не хотелось бы
...
Рейтинг: 0 / 0
Резервные слова в полях базы
    #33005014
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В индексах все строки должны быть одинаковой длины. Добавь сзади пробелы.
А alltrim('VAL') == 'VAL', как я понимаю ;-)
Код: plaintext
1.
2.
ls = len(LS_NOM)
index on padr(alltrim(LS_NOM),&ls)+'VAL' to is.IDX
...
Рейтинг: 0 / 0
Резервные слова в полях базы
    #33005082
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что +'VAL' , что alltrim('VAL')...
вы просто прибавляете к индексу три буквы в смысле - "VAL", конечно :).

>Переименовывать поля не хотелось бы

Наверно, чтоб в проге не ковыряться? Тогда самое простое - добавить еще одно поле с "дозволенным именем", скопировать туда "недозволенное", если получится ;). И потом уж индексировать по нему.
А лучше б - переименовать...
...
Рейтинг: 0 / 0
Резервные слова в полях базы
    #33005138
Crispyчто +'VAL' , что alltrim('VAL')...
вы просто прибавляете к индексу три буквы в смысле - "VAL", конечно :).


1)вообще-то LS_NOM, VAL это символьные поля базы
2) в Досе проходило нормально при таком синтаксисе:
index on alltrim(LS_NOM)+alltrim(VAL) to is.IDX
а в визуал не идет...
...
Рейтинг: 0 / 0
Резервные слова в полях базы
    #33005185
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какие проблемы ?

CREATE CURSOR t1 (val c(20),LS_NOM c(30))
SELECT t1
INDEX ON PADR(LS_NOM,30)+PADR(val,20) TAG val
set order to 1
INSERT INTO t1 VALUES ('11','11')
INSERT INTO t1 VALUES ('33','33')
INSERT INTO t1 VALUES ('22','22')
brow normal
...
Рейтинг: 0 / 0
Резервные слова в полях базы
    #33005206
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Говоря про "три буквы", я имел в виду синтаксис
index on alltrim(LS_NOM)+alltrim('VAL') to is.IDX
или
index on padr(alltrim(LS_NOM),&ls)+'VAL' to is.IDX
и там, и там VAl - не переменная, а именно эти три буквы...

Не знаю, какая у тебя версия, я на 9 попробовал для смеху создать такую таблицу - все прокатило.
Может в чем другом проблема?
...
Рейтинг: 0 / 0
Резервные слова в полях базы
    #33005216
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да даже если заменить на аллтрим?
только вообще то или совсем функций не нужно или замените
alltrim()-->padr(ltrim(),len_of_fields)
а иначе не индекс а бардак какой-то получаеться
...
Рейтинг: 0 / 0
Резервные слова в полях базы
    #33005287
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насчет alltrim в индексе, это точно, если скажем фам., имя, отч. вот так проиндесировать - точно бардак будет...

А в данном случае - может все дело в том, что просто под индексацию НЕ ТА ТАБЛИЦА таблица подвернулась? (где и на самом деле нет перемнной VAL)
...
Рейтинг: 0 / 0
Резервные слова в полях базы
    #33005328
Все - всем спасибо - действительно дело в PADR на полях...
INDEX ON PADR(LS_NOM,14)+PADR(val,3) TO is.idx
так пошло
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Резервные слова в полях базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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