Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / У кого-нибудь есть возможность косяки VFP9 в MS отправлять? / 13 сообщений из 13, страница 1 из 1
09.11.2007, 11:17
    #34927378
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
Привет всем!

Очередной косяк нарыл (VFP9SP1) на этот раз стабильный :)
Вчера до ночи из-за него сидел.

Есть две DBF (free, без индексов, созданы фоксом):
Postspr (cPostCode c(10), nKatalogId i, cKatalog c(100), cLinkName c(100), lPresent l) ~18 тыс.записей
Derived (nBaseSprId i, cLinkName c(100)) ~65тыс.записей

и запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
close Databases all
set collate to "russian"
use postspr.dbf Exclusive
use DERIVED.DBF In  0  Exclusive

select *;
	from PostSpr;
	where lPresent = .F. and (nKatalogId != - 1  or cLinkName in (select cLinkName from derived));
	into cursor tnew
Косяк в следующем: время выполнения запроса 30 минут
а при set collate to "machine" меньше секунды
при создании индекса по derived.cLinkName тоже нормально работать начинает.

причем программно наполнить не получилось, нужны именно мои dbf-ки. Т.к. при небольших изменениях в данных начинает нормально работать.

Если кто имеет возможность в MS переслать могу DBF-ки в мыло бросить.
...
Рейтинг: 0 / 0
09.11.2007, 11:20
    #34927394
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
причем программно наполнить не получилось, нужны именно мои dbf-ки
Не наводит ли это на мысль, что дело отнюдь не в фоксе, а именно в этих конкретных файлах?
...
Рейтинг: 0 / 0
09.11.2007, 11:24
    #34927422
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
проходящий. причем программно наполнить не получилось, нужны именно мои dbf-ки
Не наводит ли это на мысль, что дело отнюдь не в фоксе, а именно в этих конкретных файлах?

Файлы обычные фоксовые. В VFP6 косяка нет на тех же файлах.
...
Рейтинг: 0 / 0
09.11.2007, 11:29
    #34927452
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
Возможно это прояснит ситуацию.
...
Рейтинг: 0 / 0
09.11.2007, 11:31
    #34927459
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
А если хорошенько почитать про изменения в самой 9-ке и ее SP по сравнению с предыдущими версиями? Особенно в части кодовых страниц и индексов? И еще более подробно про их взаимодействие?
...
Рейтинг: 0 / 0
09.11.2007, 12:47
    #34927823
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
Dima TЕсли кто имеет возможность в MS переслать могу DBF-ки в мыло бросить.
Проект FoxPro официально закрыт, так что уже некому испарвлять bugs

Ну а проблема у Вас как правильно указали выше - с кодовыми таблицами Ваших таблиц. В 9 версии очень много изменений на эту тему, сам много раз обжигался, пока не написал утилиту, которая все таблицы принудительно переделала под одну кодовую таблицу...

Good luck!
...
Рейтинг: 0 / 0
09.11.2007, 13:16
    #34927967
Cyv
Cyv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
авторофициально закрыт, так что уже некому испарвлять bugs
Ну не надо так трагично, на SP3 рассчитывать конечно как-то не приходится,
но хотфиксы я думаю будут иметь место...
Первоначальный вариант SP2 ведь исправлялся уже
...
Рейтинг: 0 / 0
09.11.2007, 13:33
    #34928070
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
проходящий.А если хорошенько почитать про изменения в самой 9-ке и ее SP по сравнению с предыдущими версиями? Особенно в части кодовых страниц и индексов? И еще более подробно про их взаимодействие?
Немного в курсе. Только индексов нет у обеих таблиц. Кодовая страница у обеих 1251.
PostSpr была курсором в 9-ке, потом copy to M:\...\POSTSPR.DBF сделал.
Derived правда создана в 6-ке, но для чистоты эксперимента делал еще так (результат тот же):
Код: plaintext
1.
2.
create Cursor derived (nBaseSprId i, cLinkName c( 100 ))
append From M:\...\DERIVED.DBF

Нарыл еще:
Фатальная комбинация set`ов:
Код: plaintext
1.
set collate to "russian"
set Deleted on
Так и в 6-ке тормозить стало.

Код: plaintext
1.
2.
set collate to "russian"
set Deleted off
А так нормально в 6 и 9

Что сделать чтобы вопрос с кодовыми страницами однозначно исключить?
...
Рейтинг: 0 / 0
09.11.2007, 14:06
    #34928250
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
Только индексов нет у обеих таблиц.
Ну и что? А то, что для выполнения запросов при отсутствии подходящих строятся временные индексы в хелпе разве не написано?
...
Рейтинг: 0 / 0
09.11.2007, 14:47
    #34928454
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
close Databases all

set collate to "russian"
set Deleted on

create table M:\...\ 4 \Postspr free (cPostCode c( 10 ), nKatalogId i, cKatalog c( 100 ), cLinkName c( 100 ), lPresent l)
append From M:\...\ 3 \postspr.dbf
create table M:\...\ 4 \Derived free (nBaseSprId i, cLinkName c( 100 ))
append From M:\...\ 3 \Derived.dbf
Папка "3" - то о чем выше писал. После в "3" все запаковал и dbf-ки удалил
Попробовал все на папке "4" - результат тот же.

После такого в 9-ке с форматами уж точно порядок должен быть.

проходящий. Только индексов нет у обеих таблиц.
Ну и что? А то, что для выполнения запросов при отсутствии подходящих строятся временные индексы в хелпе разве не написано?
Я тоже так думал что временные индексы создаются. Но похоже не всегда.
...
Рейтинг: 0 / 0
09.11.2007, 15:10
    #34928569
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
У меня в итоге такое интересное итого получилось что правильный расчет 30 минут, а через секунду ошибочная выборка . И в 6 и в 9. И глюк где-то связан с вложенными запросами, оптимизатор криво оптимизирует. Я как-то давно на похожие грабли наступал, только детально разобраться некогда было. Редко вложенные запросы делаю, тут похоже на те же грабли встал.

Кто-нибудь может объяснить разное количество записей по итогу одного и того же запроса (правильно 0):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
close Databases all

set collate to "russian"
set Deleted off

use M:\...\ 4 \postspr.dbf Exclusive
delete Tag all
sele  0 
use M:\...\ 4 \DERIVED.DBF Exclusive 
delete Tag all

select *;
	from PostSpr;
	where lPresent = .F. and (nKatalogId != - 1  or (PostSpr.cLinkName in (select cLinkName from derived)));
	into cursor tnew2
? reccount('tnew2') && =  235 

sele derived
index on cLinkName tag cLinkName
select *;
	from PostSpr;
	where lPresent = .F. and (nKatalogId != - 1  or (PostSpr.cLinkName in (select cLinkName from derived)));
	into cursor tnew3
? reccount('tnew3') && =  0 
...
Рейтинг: 0 / 0
09.11.2007, 20:54
    #34929502
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
imho set collate to "russian" не стоит обсуждалось много раз
machine - наш выбор
да и codeapge = 1251 для - родная страница всегда лучше
...
Рейтинг: 0 / 0
09.11.2007, 21:55
    #34929539
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
У кого-нибудь есть возможность косяки VFP9 в MS отправлять?
Гулин Федорimho set collate to "russian" не стоит обсуждалось много раз
machine - наш выбор
Как говориться "вкус и цвет - повод для драки". Наелись machine при fpd
вышесказанное причина отказаться от вложенных запросов, но не основание геммороится с set collate to "machine". imho

Гулин Федорда и codeapge = 1251 для - родная страница всегда лучше так оно и есть
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / У кого-нибудь есть возможность косяки VFP9 в MS отправлять? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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