powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / что то seek() неработает....
7 сообщений из 7, страница 1 из 1
что то seek() неработает....
    #34278696
tupoyuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может дело было не в бабине...Но дело вот в чем и я немогу найти объяснений:

SET DEFAULT TO JUSTPATH(SYS(16))

SELECT fz57ñ
SCAN
F_err = .F.
I_err = .F.

IF !SEEK(ALLTRIM(regs),'region','region')
w_errfile("f",202)
ENDIF
ENDSCAN



PROCEDURE w_errfile
PARAMETERS typ_err,cod_err
IF typ_err="i"
I_err = .T.
INSERT INTO fiz_i FROM MEMVAR
REPLACE fiz_i.err WITH cod_err
ENDIF
IF typ_err="f"
F_err = .T.
INSERT INTO fiz_f FROM MEMVAR
REPLACE fiz_f.err WITH cod_err
ENDIF

вот если так, то таблица fiz_f-содержит одно число записей, если вот так--
...
Рейтинг: 0 / 0
что то seek() неработает....
    #34278768
tupoyuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин недописал и ентер нажал...
Так вот если вот так:
select * from reg;
where alltrim(regs) not in(select code from rgion) into dbf fiz_f, то другое, в чем тут дело?
Подскажите пожалуйста--вот еще и файлы прилагаются
...
Рейтинг: 0 / 0
что то seek() неработает....
    #34278774
tupoyuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
иот еще одна табличка
...
Рейтинг: 0 / 0
что то seek() неработает....
    #34278781
tupoyuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и последняя
...
Рейтинг: 0 / 0
что то seek() неработает....
    #34278835
хожу мимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Навскид могу предположить, что проблема может скрываться в длине кодов. Например, Seek("08") найдёт запись, хотя там есть только строки "080", "080120" и т.д., а приведенный SQL-запрос не найдёт.
...
Рейтинг: 0 / 0
что то seek() неработает....
    #34278870
хожу мимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как-то не так объяснил...
Подзапрос select code from region выбирает поле code фиксированной длины, поэтому alltrim() более коротких кодов будет всегда "not in".
Надо делать where padr(ltrim(regs), len(region.code)) not in (select ...
...
Рейтинг: 0 / 0
что то seek() неработает....
    #34278911
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сравнение символьных строк в "обычных" командах (в том числе и в SEEK) регулируется настройкой

SET EXACT

Сравнение символьных строк в командах Select-SQL регулируется настройкой

SET ANSI

Это правила сравнения символьных строк разной длины. Следует ли сравнивать строки до тех пор, пока не кончатся символы в самой короткой строке или же дополнить короткую строку до длины более длинной и только потом сравнивать?

Чтобы не зависеть от этих настроек, надо самостоятельно дополнить все сравниваемые строки до фиксированного количества символов. Например, при помощи функции PADR().

Для справки:

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


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