Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка при выполнении запроса SQL [D7, IB6.x]


pushkin42 ©   (2008-08-19 13:57:00) 

Есть запрос...

SELECT ORGLIST.FSID, ORGLIST.ID, ORGLIST.ORGNAME, ORGLIST.RGNID, '+
 'CATEGORIES.NAME as CAT, ORGLIST.GPN, '+
 'FS.SHORT, REGION.NAME as RGN, CITY.CITYNAME as CITYNAME FROM "ORGLIST", "FS", '+
 '"REGION", "CITY", "CATEGORIES" WHERE (_USLOVIE_) AND (FS.ID=ORGLIST.FSID) AND (REGION.ID=ORGLIST.RGNID) '+
 'AND (CITY.ID=ORGLIST.CITYID) AND (CATEGORIES.ID=ORGLIST.CATID)) ORDER BY '+
 'ORGLIST.ORGNAME ASC, RGN ASC, CAT ASC'

При _USLOVIE_ равном "ORGID>0" запрос выполняется корректно. Если же в скобках где условие написать "CATID"=382, то запрос не выполняется, программа вываливается в Access Violation. Где могут быть грабли? :(


Sergey13   (2008-08-19 16:36:00) [1]

> [7] pushkin42 ©   (19.08.08 15:54)

> Опять ничего не пойму :(

При твоем написании запроса это и не мудрено. 8-)
Переписывай заново, последовательно добавляя таблицы, поля и условия. Лично я так отлаживаю.


MsGuns   (2008-08-19 16:36:00) [2]

Неужели для того, чтобы отлаживать запросы к серверу, непременно нужен форум ?


pushkin42   (2008-08-19 15:54:00) [3]

Вышеуказанную проблему решил. Однако, теперь данный запрос, отрабатывая, выдает 113 записей из таблицы (в которой 185), хотя ни в одной из записей ORGLIST.RGNID не может быть меньше или равен нулю. Опять ничего не пойму :(


Vlad Oshin   (2008-08-19 15:50:00) [4]

проверте расстояния от слов до символа _'_ , чтоб пробелов хватало


Sergey13   (2008-08-19 14:45:00) [5]

> [4] pushkin42 ©   (19.08.08 14:24)

Ну и где тут твои "CATID"=382?
зачем кавычки у имен таблиц? Зачем скобки? Работает ли запрос где-нибудь типа ИБЭксперта?
AV выдает программа, а не запрос, кстати. А это отладчиком надо проверять.


pushkin42   (2008-08-19 14:24:00) [6]

млин

запрос который НЕработает:

 Q := 'SELECT ORGLIST.FSID, ORGLIST.ID, ORGLIST.ORGNAME, ORGLIST.RGNID, '+
 'CATEGORIES.NAME as CAT, ORGLIST.GPN, '+
 'FS.SHORT, REGION.NAME as RGN, CITY.CITYNAME as CITYNAME FROM "ORGLIST", "FS", '+
 '"REGION", "CITY", "CATEGORIES" WHERE ((ORGLIST.RGNID>0) AND (FS.ID=ORGLIST.FSID) AND (REGION.ID=ORGLIST.RGNID) '+
 'AND (CITY.ID=ORGLIST.CITYID) AND (CATEGORIES.ID=ORGLIST.CATID)) ORDER BY '+
 'ORGLIST.ORGNAME ASC, RGN ASC, CAT ASC';


pushkin42   (2008-08-19 14:23:00) [7]

[b]Запрос, который работает:[/b]

 Q := 'SELECT ORGLIST.FSID, ORGLIST.ID, ORGLIST.ORGNAME, ORGLIST.RGNID, '+
 'CATEGORIES.NAME as CAT, ORGLIST.GPN, '+
 'FS.SHORT, REGION.NAME as RGN, CITY.CITYNAME as CITYNAME FROM "ORGLIST", "FS", '+
 '"REGION", "CITY", "CATEGORIES" WHERE ((ORGID>0) AND (FS.ID=ORGLIST.FSID) AND (REGION.ID=ORGLIST.RGNID) '+
 'AND (CITY.ID=ORGLIST.CITYID) AND (CATEGORIES.ID=ORGLIST.CATID)) ORDER BY '+
 'ORGLIST.ORGNAME ASC, RGN ASC, CAT ASC';

[b]Запрос, который НЕ работает[/b]

Запрос, который работает:

 Q := 'SELECT ORGLIST.FSID, ORGLIST.ID, ORGLIST.ORGNAME, ORGLIST.RGNID, '+
 'CATEGORIES.NAME as CAT, ORGLIST.GPN, '+
 'FS.SHORT, REGION.NAME as RGN, CITY.CITYNAME as CITYNAME FROM "ORGLIST", "FS", '+
 '"REGION", "CITY", "CATEGORIES" WHERE ((ORGID>0) AND (FS.ID=ORGLIST.FSID) AND (REGION.ID=ORGLIST.RGNID) '+
 'AND (CITY.ID=ORGLIST.CITYID) AND (CATEGORIES.ID=ORGLIST.CATID)) ORDER BY '+
 'ORGLIST.ORGNAME ASC, RGN ASC, CAT ASC';


Sergey13   (2008-08-19 14:08:00) [8]

> [0] pushkin42 ©   (19.08.08 13:57)

Блин, неужели трудно отформатировать, а?
Почему таблицы в кавычках?

> При _USLOVIE_ равном "ORGID>0"
> "CATID"=382

Давай реальные запросы или разберись со своими кавычками.


pushkin42   (2008-08-19 13:58:00) [9]

Поправочка: строка 4:  WHERE ((_USLOVIE_) AND (FS...

(левую скобочку забыл. все равно не работает)


Наверх

Титульная страница Поиск, карта сайта Написать письмо