Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Находит неправильную запись в по индексу / 8 сообщений из 8, страница 1 из 1
29.10.2009, 12:28
    #36279235
GavRYshA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Находит неправильную запись в по индексу
емеются 2 таблицы ...
В одной первой таблице содержатся приходы товара, каждый приход уникально пронумерован в поле KOD_NDOK (на рисунке сверху).
Во второй таблице расход этого товара.

Задача состоит в том чтобы раставить в поле KOD_NPRI во второй таблице код прихода из первой таблицы из поля KOD_NDOK. Это можно осуществить с помощью поля kod_nav, kcen, nkod_nazv.

вот что я делаю

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
USE prihod_temp
INDEX ON nkod_nazv + kod_nazv  + kcen TO prihod_temp_2
USE prihod_temp INDEX prihod_temp_2
SELECT  0 

USE rashod_t

SCAN 
	SELECT prihod_temp	
	IF SEEK(rashod_t.nkod_nazv + rashod_t.kod_nazv + rashod_t.kcen)
		REPLACE rashod_t.kod_npri WITH prihod_temp.kod_ndok
	ENDIF
ENDSCAN 

Фишка в том, что неправильно находит по индексу .... на картинке показано.
...
Рейтинг: 0 / 0
29.10.2009, 12:29
    #36279240
GavRYshA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Находит неправильную запись в по индексу
вот картинка
...
Рейтинг: 0 / 0
29.10.2009, 12:36
    #36279259
Находит неправильную запись в по индексу
GavRYshA,
а не пробовал вычислять значения, которые используешь в качестве индексов? Как думаешь, сильно ли будут отличаться для компа значения выражений 2+3 и 1+4?
...
Рейтинг: 0 / 0
29.10.2009, 12:42
    #36279275
GavRYshA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Находит неправильную запись в по индексу
блин точняк .... мот подскажите, что в моем случае лучше сделатЬ?
...
Рейтинг: 0 / 0
29.10.2009, 12:52
    #36279310
Находит неправильную запись в по индексу
Код: plaintext
1.
2.
INDEX ON str(nkod_nazv) + str(kod_nazv)  + str(kcen) TO prihod_temp_2
...
IF SEEK(str(rashod_t.nkod_nazv) + str(rashod_t.kod_nazv) + str(rashod_t.kcen))
...
Рейтинг: 0 / 0
29.10.2009, 13:00
    #36279344
GavRYshA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Находит неправильную запись в по индексу
проходящий
пасибки тебе ... все гуд пошло)
...
Рейтинг: 0 / 0
29.10.2009, 15:08
    #36279964
igorbik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Находит неправильную запись в по индексу
GavRYshA,

Сдается мне, что вместо
str(nkod_nazv)
нужно записать нечто вроде
padl(allt(str(nkod_nazv)), 20, '0'),
а то str(nkod_nazv) имеет разные длины, и весь индекс может оказаться неадекватным.
...
Рейтинг: 0 / 0
29.10.2009, 16:10
    #36280189
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Находит неправильную запись в по индексу
автора то str(nkod_nazv) имеет разные длины, и весь индекс может оказаться неадекватным.

нет
Код: plaintext
1.
2.
3.
4.
5.
6.
? Len(Str( 10 ))
? Len(Str( 123555 ))
? Len(Str( 12355555555 ))
? Len(Str( 12355555555555 ))
? Len(Str( 12355555555555555 ))
? Len(Str( 1235225555555555555 ))


но лучше сделать так - индекс будет покороче
Код: plaintext
1.
2.
3.
INDEX ON ltrim(str(nkod_nazv)) + "_" + ltrim(str(kod_nazv)) + "_" + ltrim(str(kcen)) TO prihod_temp_2
...
IF SEEK(ltrim(str(rashod_t.nkod_nazv)) + "_" + ltrim(str(rashod_t.kod_nazv)) + "_" + ltrim(str(rashod_t.kcen)))
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Находит неправильную запись в по индексу / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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