Странность в работе ТП под MSSQL

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Странность в работе ТП под MSSQL

Сообщение m0p3e »

Может кто сталкивался...
Есть интерфейс выбора контрагентов. При инициализации в таблицу в памяти набираются контрагенты по некоторым параметрам. Далее пользователь выбирает из этого списка нужный.
В PSQL все работало замечательно, а вот под MSSQL наблюдается ряд странностей.
Таблица:

Код: Выделить всё

Тable struct MyKatorg
(
 nrec : comp
,name : string [ 80 ]
)
with index
(
 MyKatorg0 = nrec
,MyKatorg1 = name
);
В интерфейсе

Код: Выделить всё

Create View
as select *
from Katorg,MyKatorg
;

browse brw1;
Table MyKatorg;
Fields
 MyKatorg.name : Protect;
end;
Интересует быстрый поиск в браузе. При данном описании контрагенты ищутся нормально. Но, если меняем на

Код: Выделить всё

Create View
as select *
from Katorg,MyKatorg
where (( MyKatorg.nrec == Katorg.nrec ))
;
то многие контрагенты не находятся. Самое интересное, что чем больше таблиц мы сцепляем, тем хуже работает поиск.
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

Да не должно это зависеть от СУБД. ТП это отдельный проект, еще одна СУБД типа.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Сам в шоке, но один и тот же интерфейс работает по разному под PSQL и MSSQL. Самое хреновое в том, что обойти никак это не удается.
Ged
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение Ged »

а если явно указать индекс

Код: Выделить всё

Create View 
as select * 
from Katorg,
     MyKatorg (MyKatorg1)
where (( MyKatorg.nrec == Katorg.nrec )) 
;
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

попробуйте по приколу добавить фильтр
'dddd'== mykatorg.name(length=4)
и сравните результат в первасиве и mssql
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Ged
Индекс указывал. Не помогает.

edward_K
Попробовать смогу только в четверг. Болезнь свалила...
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

edward_K
Результат одинаковый.
Если по части имени, то не фильтрует ни под PSQL ни под MSSQL.
По полному совпадению имени фильтрует в обоих.

san
Да не должно это зависеть от СУБД. ТП это отдельный проект, еще одна СУБД типа.
А где бы посмотреть реализацию этой отдельной СУБД? Атлантис в наличии есть.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

хм
а раньше сия конструкция в первасиве пахала.
хотя... Наверное это было на 7 первасиве еще. В MsSql она никогда не работала.
это я привел к вопросу о совместимости СУБД. А так вы ж в Москве , та часть от атлантиса, которой у вас нет, есть тока там. К атлантису тоже не все дают ведь? Потрясите свою ТП.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

edward_K
У меня большой атлантис :)
Вот знать бы куда смотреть...
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

в исходники base.dll наверное. либо все файлы на atl , либ на дрова к базе(ms70drv.dll например). Есть кстати dll c протоколированием обращений к базе. Если у вас атлантис имеется могете галку на них погонять. Вообще не раз сталкивался с неплатформонезависимостью галки. В таких случаях подкручивали именно дрова на доступ к базе.
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Хм... ms70drv уже пересобирал. Отучал материться на разные версии odbc. Не в курсе, это теже исходники с ключем (протоколирование обращений) или другие?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

не в курсе
от ms70drv я исходников не видел.
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

mt_drv.dll
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

san
Да. Уже нашел. Но блин, на осознание уйдет уйма времени... :(
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

А как заполняется mykatorg?
Ответить