|
|
|
Необъяснимая дискриминация типов в DBase
|
|||
|---|---|---|---|
|
#18+
Подскажите, люди добрые, что бы сие значило? Имеется 2 связанных DBaseвских таблицы. Поля в них имеют типы как NUMERIC, так и CHARACTER. Нужно сделать выборку - 1 столбик из 1й таблицы, 1 из 2й. select A.a1, B.b1 from A, B where A.id=B.id Правильно? Вроде бы работает, но исключительно для столбцов типа CHARACTER. Если a1 или b1 NUMERIC - SQL Explorer после некоторых раздумий вылетает с радостным сообщением "Acces violation 0000000 и т/д". Для пущей загадочности - если ограничить выборку (там где-то время указывается) до какого-то определенного времени - и с NUMERIC полями работает, а чуть больше - опять та же ошибка... Может кто-нибудь объяснить сей загадочный феномен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2004, 15:13 |
|
||
|
Необъяснимая дискриминация типов в DBase
|
|||
|---|---|---|---|
|
#18+
хотелось бы взглянуть на dbf'ы, или хотя бы узнать, какой у них размер.. как происходит подключение -- через odbc или bde? может один из файлов повреждён где-то посередине, вот и валится при просмотре всех данных. можно попробовать упаковать эти таблицы какой-либо программой просмотра dbf (типа dbu) может dbf покажешь? прикрепи к сообщению в архиве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2004, 10:27 |
|
||
|
Необъяснимая дискриминация типов в DBase
|
|||
|---|---|---|---|
|
#18+
savosin_sergey хотелось бы взглянуть на dbf'ы, или хотя бы узнать, какой у них размер.. как происходит подключение -- через odbc или bde? Размер ок. 30 Мб. Вообще-то их много - по 3 таблицы за каждый день и я экспериментировал с разными. Подключаюсь я через BDE. Вчера вечером в ходе экспериментов поменял строчку where A.id=B.id на where В.id=А.id и все заработало.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2004, 11:41 |
|
||
|
Необъяснимая дискриминация типов в DBase
|
|||
|---|---|---|---|
|
#18+
В общем, я все равно не понимаю, почему от перестановки правой и левой части уравнения меняется "исполнимость" запроса. При чем, как я уже говорил - сей феномен выявляется только с 1 и более численными полями... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2004, 11:45 |
|
||
|
Необъяснимая дискриминация типов в DBase
|
|||
|---|---|---|---|
|
#18+
да уж, отстой.. мож дело в индексах, а может в большом объёме данных. у тебя индексы есть на эти числовые поля? точно я не знаю, но ведь запрос на выбор должен выбирать (сам!) какой-нибудь индекс.. хотя при создании алиаса индексы не указываются кстати, можешь попробовать подключиться к этим алисам через odbc -- создай obdc-соединение (где-то в панели управления), а затем в borlandовском sqlExplorer'е открой его, и выполни свой запрос... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2004, 13:11 |
|
||
|
Необъяснимая дискриминация типов в DBase
|
|||
|---|---|---|---|
|
#18+
этот гад (bde или sqlExplorer из 5го c++builder'а) при выполнении скромного запроса по двум 40метровым таблицам создаёт огромную временную (500 мегабайт) таблицу, а потом на неё же ругается, что открыть не может. вывод: в sqlExplorer'е нечего выполнять запросы на выборку из нескольких таблиц. связанным таблицам необходимо присваивать подходящие индексы (во всяких компонентах) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2004, 13:27 |
|
||
|
Необъяснимая дискриминация типов в DBase
|
|||
|---|---|---|---|
|
#18+
Что вы хотите? SQL для dbf выполняется на клиенте. Нет ни какой статистики по данным для оптимизации запроса - поэтому все что есть сам текст запроса. Например A.id имеет 1000 различных значений, а B.id - 5, в зависимости от порядка на клиенте каждая запись В будет сравниваться с 1000 значениями или каждая запись А с 5. Даже если число равное то начинает играть размер записей А и В. Несколько сумбурно, но смысл по моему ясен. Так что запрос оптимизировать надо девелоперу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 10:41 |
|
||
|
|

start [/forum/topic.php?fid=56&fpage=43&tid=2016700]: |
0ms |
get settings: |
8ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 202ms |
| total: | 329ms |

| 0 / 0 |
