Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

BDE, базы данных   Найти похожие ветки 

 
Olsab   (2004-03-23 16:09) [0]

Уважаемые Мастера!
D5,DBASE, BDE  
 Есть SQL-запрос, который связывает 9 файлов. В зависимости от условий ограничения, выводится разное кол-во записей. На небольших таблицах запрос работает без замечаний, а при увеличении кол-ва записей в таблицах, он перестает работать, реагирует на кол-во выводимых полей и на кол-во связаных таблиц. Выдает ошибку
Access violation at address 00000000 read address 00000000 .
Создается впечатление, что переполняется какой-то буфер. Может кто сталкивался с такой проблемой?


 
Alex_Bredin ©   (2004-03-23 16:11) [1]

такая ошибка не появляется от увеличения количества записей


 
olsab   (2004-03-23 16:17) [2]

Грешить больше не на что. Запрос выполнялся на проверенных данных(которые были тиражируемые, чтобы достичь большего кол-ва записей), выполнялся просто в SQL-Explorer -е


 
Alex_Bredin ©   (2004-03-23 16:21) [3]

приведите текст запроса


 
olsab   (2004-03-23 16:23) [4]

Используется локальный SQL не FOXPRO


 
olsab   (2004-03-23 16:27) [5]

SELECT Bxd.NK, Sp.NAME, Bxd.DAR,Vid.NAME+" "+ Bxd.NOM  vid,
Bxd.DAI, Bxd.ORG, Bxd.OTPR, City.NAME city, Bxd.SOD, Bxd.DAV, Bxd.NKS,
Bxd.KONT, Bxd.YE, Bxd.KVID, Bxd.NOM, Bxd.ISXN, Bxd.KSP, Bxd.KCITY,
Bxd.OTM, Bxd.KKUR, Bxd.DATK, Bxd.KTEMA, Skur.NAME kur, Tema.NAME tema,
Bxd.KORG, Org.NAME org_1, Bxd.KDEL, Delo.NAME1 delo, Vid.NAME vidd
FROM "BXD.DBF" Bxd,"CITY.DBF" City,"SP.DBF" Sp,"SKUR.DBF" Skur,
 "TEMA.DBF" Tema,"ORG.DBF" Org,"DELO.DBF" Delo,
 "VID.DBF" Vid
where
   (Bxd.KCITY = City.KOD) and
   (Bxd.KVID = Vid.KOD)  and
   (Bxd.KSP = Sp.KOD)  and
   (Bxd.KKUR = Skur.KOD)  and
   (Bxd.KTEMA = Tema.KOD)  and
   (Bxd.KORG = Org.KOD)  and
   (Bxd.KDEL = Delo.KOD)
 and bxd.otm=1
Одна таблица связывается с 7-ю справочниками для расшифровки кодов и выбираюся, например, выполненные документы(bxd.otm=1)


 
Alex_Bredin ©   (2004-03-23 16:31) [6]

используйте JOIN..ON вместо WHERE
это реакция на NULL в ключевом поле


 
olsab   (2004-03-23 16:36) [7]

В DBASE NULL нет по определению, там в незаполненные поля ставится 0, а в справочниках заведены записи с нулевым значением для того, чтобы было точное соответствие и не надо было писать LEFT OUTER JOIN.
 С INNER JOIN аналогичная ситуация - выдает ошибку


 
Alex_Bredin ©   (2004-03-23 16:50) [8]


> В DBASE NULL нет по определению, там в незаполненные поля
> ставится 0


первый раз слышу


 
Alex_Bredin ©   (2004-03-23 16:52) [9]

да у вас и с именами путаница - DELO например  и поле и таблица


 
Johnmen ©   (2004-03-23 16:54) [10]

>olsab   (23.03.04 16:27) [5]

Т.е. приведенный запрос иногда всё-таки работает ?


 
olsab   (2004-03-23 16:56) [11]

Поля Delo нет только таблица, а в списке полей это же алиасное имя, оно то особой роли не играет.


 
Alex_Bredin ©   (2004-03-23 17:04) [12]

SELECT Bxd.NK, Sp.NAME, Bxd.DAR,Vid.NAME+" "+ Bxd.NOM,
Bxd.DAI, Bxd.ORG, Bxd.OTPR, City.NAME , Bxd.SOD, Bxd.DAV, Bxd.NKS,
Bxd.KONT, Bxd.YE, Bxd.KVID, Bxd.NOM, Bxd.ISXN, Bxd.KSP, Bxd.KCITY,
Bxd.OTM, Bxd.KKUR, Bxd.DATK, Bxd.KTEMA, Skur.NAME kur, Tema.NAME ,
Bxd.KORG, Org.NAME , Bxd.KDEL, Delo.NAME1 , Vid.NAME

FROM Bxd
left join City on (Bxd.KCITY = City.KOD)
left join Vid on  (Bxd.KVID = Vid.KOD)
left join Sp on   (Bxd.KSP = Sp.KOD)  
left join Skur on (Bxd.KKUR = Skur.KOD)
left join Tema on (Bxd.KTEMA = Tema.KOD)
left join Org on  (Bxd.KORG = Org.KOD)
left join Delo on (Bxd.KDEL = Delo.KOD)

where Bxd.otm=1

уфф.
попробуйте


 
olsab   (2004-03-23 17:25) [13]

С последней версией запроса работает, но с добавлением записей в таблице до 70000, вываливается по той же ошибке.
У меня закончился инет. Спасибо


 
Alex_Bredin ©   (2004-03-23 17:32) [14]

тогда еще вариант - поменять местами поля вот так:

FROM Bxd
left join City on (City.KOD =Bxd.KCITY)
left join Vid on  (Vid.KOD = Bxd.KVID ) итп

не знаю почему, но в некотроых случаях порядок полей в условии иимеет значение



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.034 c
1-1080364316
User_OKA
2004-03-27 08:11
2004.04.18
Гиперссылка


6-1076800567
dr Tr0jan
2004-02-15 02:16
2004.04.18
Attachment в TIdSMTP


14-1080113981
ИМХО
2004-03-24 10:39
2004.04.18
Еще одна задачка для шахматистов


1-1080903079
ownz
2004-04-02 14:51
2004.04.18
Как можно создать библиотеку и загонять туда любые файлы


1-1080914352
P_a_s_h_a
2004-04-02 17:59
2004.04.18
Как отключить анимацию окна при максимизации/минимизации?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский