|
|
|
что то seek() неработает....
|
|||
|---|---|---|---|
|
#18+
Может дело было не в бабине...Но дело вот в чем и я немогу найти объяснений: 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-содержит одно число записей, если вот так-- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 13:55 |
|
||
|
что то seek() неработает....
|
|||
|---|---|---|---|
|
#18+
Блин недописал и ентер нажал... Так вот если вот так: select * from reg; where alltrim(regs) not in(select code from rgion) into dbf fiz_f, то другое, в чем тут дело? Подскажите пожалуйста--вот еще и файлы прилагаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 14:14 |
|
||
|
что то seek() неработает....
|
|||
|---|---|---|---|
|
#18+
иот еще одна табличка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 14:15 |
|
||
|
что то seek() неработает....
|
|||
|---|---|---|---|
|
#18+
и последняя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 14:16 |
|
||
|
что то seek() неработает....
|
|||
|---|---|---|---|
|
#18+
Навскид могу предположить, что проблема может скрываться в длине кодов. Например, Seek("08") найдёт запись, хотя там есть только строки "080", "080120" и т.д., а приведенный SQL-запрос не найдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 14:29 |
|
||
|
что то seek() неработает....
|
|||
|---|---|---|---|
|
#18+
Как-то не так объяснил... Подзапрос select code from region выбирает поле code фиксированной длины, поэтому alltrim() более коротких кодов будет всегда "not in". Надо делать where padr(ltrim(regs), len(region.code)) not in (select ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 14:36 |
|
||
|
что то seek() неработает....
|
|||
|---|---|---|---|
|
#18+
Сравнение символьных строк в "обычных" командах (в том числе и в SEEK) регулируется настройкой SET EXACT Сравнение символьных строк в командах Select-SQL регулируется настройкой SET ANSI Это правила сравнения символьных строк разной длины. Следует ли сравнивать строки до тех пор, пока не кончатся символы в самой короткой строке или же дополнить короткую строку до длины более длинной и только потом сравнивать? Чтобы не зависеть от этих настроек, надо самостоятельно дополнить все сравниваемые строки до фиксированного количества символов. Например, при помощи функции PADR(). Для справки: Поля типа Character и так всегда имеют фиксированное количество символов равное размерности поля. Недостающие символы дополняются пробелами справа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2007, 14:46 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34278911&tid=1589996]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
98ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 436ms |

| 0 / 0 |
