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

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

получении значения по дополнительной таблице [D6, FB]


Страницы:   1 2

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


Страницы:   1 2

Наверх

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