![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
получении значения по дополнительной таблице [D6, FB]
erika © (2005-10-12 10:12:00)Здравствуйте!
Возникла проблема при получении значения по дополнительной таблице. Задача состоит в следующем:
1. есть таблица MAPKKR, где KKR - PK; в таблице есть поле NOMKKR, в котором содержится номер документа , например - 3567
2. есть таблица TABMAP, где IDMTAB – PK, KKR – FK; IDTK для связи + другие поля
3. есть view INKARTA, где содержатся уже подсчитанные и сгруппированные поля по IDTK и DOPINF; в последнем идет ссылка (сноска) на поле NОМKKR, но в записи как 'К'+NOMB, т.е. К3567
3. нужно создать VIEW, пишу запрос:
SELECT mapkkr.kkr, TABMAP.IDMTAB, TABMAP.KKR, INKARTA.ART, INKARTA.NOM, INKARTA.NAME, INKARTA.WIDTH, INKARTA.KOLSKL
FROM mapkkr, TABMAP,INKARTA
WHERE (mapkkr.kkr = tabmap.kkr) and (INKARTA.IDTK = TABMAP.IDTK) and (INKARTA.dopinf like 'К' mapkkr.nomkkr)
Выдает ошибку
Token unknown - line 3, char 96. mapkkr.
Да, я и сама понимаю, что это - (INKARTA.dopinf like 'К' mapkkr.nomkkr) - не правильно. Подскажите, как это можно реализовать.
Заранее благодарна.
erika (2005-10-12 12:43:00) [21]
> erika © (12.10.05 12:32) [16]
уже без like, а результата тотже
> при этом если я в запросе указываю конкретный документ
> без like, то все хорошо 5-6 мсек
> (INKARTA.dopinf = ('К4046'))
сейчас появилось новое новое собщение:
canvas does't allow drawing.
> А просто запрос без создания вьюхи работает?
я и пытаюсь сначала запрос выполнить, а потом это загнать во View
Val (2005-10-12 12:38:00) [22]может он не виснет а долго выполняется, например из-за декартова произведения?
Sergey13 (2005-10-12 12:35:00) [23]2[16] erika © (12.10.05 12:32)
>проблема в создании нового view
А просто запрос без создания вьюхи работает?
>при этом если я в запросе указываю конкретный документ без like, то все хорошо 5-6 мсек
Тебе еще в [4] ANB © сказал что тут Like и не нужен вроде. Не так?
erika (2005-10-12 12:32:00) [24]
> Sergey13 © (12.10.05 12:03) [15]
INKArta у меня тоже идет замечательно
проблема в создании нового view
> Val © (12.10.05 12:01) [14]
isql вообще виснет и ничего не пишет
//
при этом если я в запросе указываю конкретный документ без like, то все хорошо 5-6 мсек
SELECT mapkkr.kkr, TABMAP.IDMTAB, TABMAP.KKR, INKARTA.ART, INKARTA.NOM, INKARTA.NAME, INKARTA.WIDTH, INKARTA.KOLSKL
FROM mapkkr, TABMAP,INKARTA
WHERE (mapkkr.kkr = tabmap.kkr) and (INKARTA.IDTK = TABMAP.IDTK) and (INKARTA.dopinf = ('К4046'))
Sergey13 (2005-10-12 12:03:00) [25]2[13] erika © (12.10.05 11:51)
Странно. У меня нечто похожее отрабатывает нормально.
Val (2005-10-12 12:01:00) [26]выполните этот запрос через isql и приведите ошибку, пожалуйста. Я не нашел первой части приведенной ошибки в ошибках IB.
erika (2005-10-12 11:51:00) [27]
> Sergey13 © (12.10.05 11:47) [12]
легко
CREATE VIEW INKARTA(
IDTK,
DOPINF,
ART,
NOM,
NAME,
WIDTH,
KOLSKL)
AS
SELECT stkan.idtk, PASPORT.DOPINF, stkan.art, stkan.nom, stkan.name, stkan.width, sum(PASPORT.prihod) kolskl
FROM Stkan, TKANRUL, PASPORT
where (stkan.idtk = tkanrul.idtk) and (TKANRUL.IDRUL = PASPORT.IDRUL) and (PASPORT.dopinf like 'К%')
group by stkan.idtk, PASPORT.DOPINF, stkan.art, stkan.nom, stkan.name, stkan.width
> Val © (12.10.05 11:45) [11]
В окне сообщению об ошибке больше ничего не указано...
Sergey13 (2005-10-12 11:47:00) [28]2[10] erika © (12.10.05 11:35)
А код создания вьюхи INKARTA можно глянуть?
Val (2005-10-12 11:45:00) [29]как-то не верится, чтоб ибэксперт это выдавал, не понимаю, к чему там стейтментс, можно ошибку целиком?
erika (2005-10-12 11:35:00) [30]изначально пробую отладить в IBExpert, он и выдает ошибку.
затем планирую использовать компоненту IBDataSet
Sergey13 (2005-10-12 11:08:00) [31]2[7] erika © (12.10.05 10:57)
Что за компоненты? Модифицирующие запросы (на update,delete) есть? Они переделаны?
Val (2005-10-12 11:03:00) [32]что выдает вам эту ошибку?
erika (2005-10-12 10:57:00) [33]
> Sergey13 © (12.10.05 10:53) [5]
типа string
erika (2005-10-12 10:56:00) [34]
> Sergey13 © (12.10.05 10:29) [2]
> 2erika © (12.10.05 10:12)
> >в последнем идет ссылка (сноска) на поле NОМKKR, но
> в записи как 'К'+NOMB, т.е. К3567
> Какая же это ссылка?
раньше это действительно была просто ссыла типа использовано было по К3567, а теперь вот понадобилось для отчета. "К" нужна была для объяснения что за документ был
> Почему бы не привести к одинаковому виду и поставить на поле нормальный форинкей?
для того что бы теперь привести это к одинаковому виду надо пол базы сломать и клиента хорошо переделывать
> Да и не на номер наверное надо а на ПК.
связь идет (INKARTA.IDTK = TABMAP.IDTK), а определение по карте имено по дополнительному полю
сама не рада, а куда деваться, при пртоектировании задачи не было, а вот сейчас вынь и положь
Sergey13 (2005-10-12 10:53:00) [35]2[3] erika © (12.10.05 10:48)
mapkkr.nomkkr - какого типа?
ANB (2005-10-12 10:52:00) [36]
> erika © (12.10.05 10:48) [3]
Странная ошибка. Кстати, а зачем like ? "=" - вполне достаточно.
erika (2005-10-12 10:48:00) [37]когда пишу
SELECT mapkkr.kkr, TABMAP.IDMTAB, TABMAP.KKR, INKARTA.ART, INKARTA.NOM, INKARTA.NAME, INKARTA.WIDTH, INKARTA.KOLSKL
FROM mapkkr, TABMAP,INKARTA
WHERE (mapkkr.kkr = tabmap.kkr) and (INKARTA.IDTK = TABMAP.IDTK) and (INKARTA.dopinf like 'К'||mapkkr.nomkkr)
выдает ошибку:
the cursor identified in the update or delete statement is not positioned on a row. no current record for fetch operation
Sergey13 (2005-10-12 10:29:00) [38]2erika © (12.10.05 10:12)
>в последнем идет ссылка (сноска) на поле NОМKKR, но в записи как 'К'+NOMB, т.е. К3567
Какая же это ссылка? Это просто так кажется, ИМХО. Почему бы не привести к одинаковому виду и поставить на поле нормальный форинкей? Да и не на номер наверное надо а на ПК.
Johnmen (2005-10-12 10:22:00) [39]
like 'К'||mapkkr.nomkkr