![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос по соединению данных. [D7, FireBird 1.5]
Xmen © (2008-03-24 06:45:00)Привет мастерам.
У меня возникла такая проблема даже незнаю как описать. Такесть у меня 2 таблицы мастер(1)-детал(1). В одном список документов а втором кому этот документ назначен для прочтения. Нужно сделат такой запрос чтобы в одной строке был данные с мастер таблицы и в конце одном поле показывал бы данные с второй таблицы.
1 табл.
ID Doc_name Doc_Date Doc_type
---------------------------------------------------------------
1 письмо1 21.03.2008 письмо
2 приказ1 22.03.2008 приказ
3 письмо2 22.03.2008 письмо
2 табл.
ID Main_id FIO Content
---------------------------------------------------------------
1 1 Петров А.С. на расмотрение
2 2 Ким Л.А. на выполнение
3 2 Иванов Н.Н. на выполнение
4 2 Попов Р.Д. на рассмотрение
5 3 Иванов Н.Н. для ознакомления
результат должен быт такой
ID Doc_name Doc_date FIO_Content
2 приказ1 22.03.2008 Ким Л.А. на выполнения, Иванов Н.Н. на выполнения, Попов Р.Д. на рассмотрения
Johnmen (2008-03-25 16:14:00) [1]
> Что это за ошибка?
На чём?
Xmen (2008-03-25 15:50:00) [2]This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$PROCEDURES failed.
lock conflict on no wait transaction.
attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_21".
Что это за ошибка?
Правильный_Вася (2008-03-24 16:15:00) [3]
> с ХП незнаком
ознакомься, это не долго
Xmen (2008-03-24 15:59:00) [4]я же вверху писал с ХП незнаком просто гдето посмотрел код ХП и для себя настроил. как нужно сделать правильние
Правильный_Вася (2008-03-24 15:55:00) [5]какие типы полей?
как вызываешь ХП?
> pr_date + :pr_date1;
операция + не определена для строковых типов
Xmen (2008-03-24 15:49:00) [6]если я сделал
e.executor_id
все равно такая ощибка
Правильный_Вася (2008-03-24 15:45:00) [7]хотя ошибка, похоже, при неправильном вызове процедуры
Правильный_Вася (2008-03-24 15:45:00) [8]сделай явное приведение типов здесь:
e.executor_id||' '||e.control_date
Xmen (2008-03-24 15:41:00) [9]Текс такой
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Dynamic SQL Error.
expression evaluation not supported.
Правильный_Вася (2008-03-24 15:34:00) [10]
> выдал ощибку
ждем текст ошибки
Xmen (2008-03-24 15:14:00) [11]Сделал так но выдал ощибку, не понял где сделал ощибку
CREATE PROCEDURE PR1 (
main_id integer)
returns (
pr_date varchar(255))
as
declare variable pr_date1 varchar(55);
begin
/* Procedure Text */
pr_date = '';
for select e.executor_id||' '||e.control_date
from incoming_executor e
where e.incoming_id=:main_id
into :pr_date1
do
begin
if (:pr_date1 is not null) then pr_date = pr_date + :pr_date1;
end
suspend;
end
Xmen (2008-03-24 10:36:00) [12]да тогда покажите простую путь примером. Пожалуйста...
Sergey13 (2008-03-24 10:23:00) [13]> [7] Xmen (24.03.08 10:15)
Можно В ФР. Перед печатью бенда заполняешь вручную переменную чем угодно.
Но неправильно это.
Xmen (2008-03-24 10:15:00) [14]а можно это то что я спрашевал в FastReporte реализовать. У меня отчете там выходять, както видел что там тоже есть свой язык программирования или это уже сложно.
Sergey13 (2008-03-24 10:08:00) [15]> [5] Xmen (24.03.08 09:41)
> так как это прого для дипломной работе то испольнителе могут быть макс 5 чел
Это неправильно - писать по разному для диплома и не для диплома. Пиши всегда правильно - меньше путаться придется. Кроме того - завалят ведь на защите диплома, если в комиссии не круглые идиоты будут. Скажут - чему ж мы тебя учили то 5 лет?
> а как это реализовать в ХП я еще не исползовал их
На сайет ibase.ru много всякого материала по ИБ/ФБ.
Xmen (2008-03-24 09:41:00) [16]Да это так это таблица для документооборота, а как это реализовать в ХП я еще не исползовал их. Обясните это в примере если возможно. так как это прого для дипломной работе то испольнителе могут быть макс 5 чел, разумеется в приделах 255 символов для отображения. Это строка нужно для ввода в отчет.
Sergey13 (2008-03-24 09:08:00) [17]+
И отправитель еще должен быть во второй таблице.
Sergey13 (2008-03-24 09:05:00) [18]+
Я так понимаю это документооборот какой то?
У каждой записи второй таблицы могут (даже должны) быть свои даты. Иначе весь учет теряет смысл без хронологии.
Sergey13 (2008-03-24 09:02:00) [19]ИМХО, без хранимой процедуры никак.
Вот только стОит ли стараться? Если "поле" получится очень большим начнутся проблемы с отображением.
Johnmen (2008-03-24 09:00:00) [20]Пиши ХП.