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

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

SQL [D7, WinXP]


Nicky000 ©   (2008-03-20 21:39:00) 

Добрый день! Помогите пожалуйста с написанием кода.

Использую БД Oracle. Компоненты ODAC. Есть запрос:

select pc.CLIENT,
      pc.NAME,
      pc.LINKCLIENT,
      cus.CUSTID
from postclnt pc
inner join customer cus on pc.CLIENT = cus.CLIENT
where
pc.CLIENT in (SELECT P.CLIENT
                                     FROM POSTCLNT P
                                     CONNECT BY PRIOR P.CLIENT =P.LINKCLIENT  
                                     START WITH P.CLIENT= Номер Агента)

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

Нужен полный код самой реализации запросов с помощью TOraQuery и код обработки нажатия клавиши для исполнения запроса.


nicky000   (2008-03-25 11:39:00) [1]

Использовала такой код
var
 F : TextFile;
begin
 AssignFile(f, 'c:\MyFile.txt');
 ReWrite(F);
 with MyDataSet do//здесь DataSet
 while not Eof do begin
     WriteLn(F, 'insert into AgentTMP (id, name, client, parent_client, cust_id,root_cust_id,status) values (SEQ_MESS.NEXTVAL, ' + QuotedStr(FieldByName('Bank').AsString) + ',' + FieldByName('10008').AsString + ',' + ... + ')';
     Next;
 end;//while
end;
Но задача такая:
Мой запрос формирует только это:
'Банк 1 (Филиал №5 Финансовое Сервис Бюро)',10008,10007,10008,10006,0);

Все остальное:
insert into AgentTMP (id, name, client, parent_client, cust_id,root_cust_id,status) values (SEQ_MESS.NEXTVAL,

должно добавляться, например, из memo и формировать файл, который в последствии будет готовым запросом. Я совсем в потерянности ((( (Файл желательно сохранять в выбранную директорию)


tesseract   (2008-03-21 10:16:00) [2]


> А как на выходе сформировать из этого запроса текстовой
> файл следующего содержания:

Примерно так. Не думай, что скомпилируеться конечно.

var
str:string;
ExpFile:TextFile;
begin

AssignFile(ExpFile,PathToFileWithName);
rewrite(expFile);
for i:=1 to Query.RecordCount do
begin
str:=' insert into '+tablename  +' ('
for i:=1 to Query.FieldCount do
  str:=str+'FieldName+',';

Str:=str+' ) values(';
for i:=1 to Query.FieldCount do
    str:=str+Query.FieldByname(FieldName).AsString+',';
ExpFile.Writeln(Str);
end;
CloseFile(ExpFile);
end;


Очередной банк клиент готов :-)


nicky000   (2008-03-21 10:01:00) [3]

Запрос может и студенческий. А как на выходе сформировать из этого запроса текстовой файл следующего содержания:

insert into AgentTMP (id, name, client, parent_client, cust_id,root_cust_id,status) values (SEQ_MESS.NEXTVAL, 'Банк 1 (Филиал №5 Финансовое Сервис Бюро)',10008,10007,10008,10006,0);

insert into AgentTMP (id, name, client, parent_client, cust_id,root_cust_id,status) values (SEQ_MESS.NEXTVAL, 'Банк 1 (Филиал №5  - Отделение №1 Финансовое Сервис Бюро)',10016,10008,10016,10006,0);

insert into AgentTMP (id, name, client, parent_client, cust_id,root_cust_id,status) values (SEQ_MESS.NEXTVAL, 'Банк 1 (Филиал №5  - Отделение №2 Финансовое Сервис Бюро)',10017,10008,10017,10006,0);


tesseract   (2008-03-20 23:10:00) [4]


> Чувство юмора заценила. Спасибо.


Скажешь, что конкретно надо, получишь конкретный ответ.  Запрос студенческий.


Nicky000   (2008-03-20 23:08:00) [5]

Чувство юмора заценила. Спасибо.


tesseract   (2008-03-20 22:52:00) [6]


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


select pc.CLIENT,
     pc.NAME,
     pc.LINKCLIENT,
     cus.CUSTID
from postclnt pc
inner join customer cus on pc.CLIENT = cus.CLIENT
where
pc.CLIENT in (SELECT P.CLIENT
                                    FROM POSTCLNT P
                                    inner join  PRIOR P.CLIENT =P.LINKCLIENT  
                                    Where P.CLIENT= '+Edit1.Text+')



С вас 100 УЁ.  За текст нормального запроса 200.


Kolan   (2008-03-20 22:33:00) [7]


> Нужен полный код самой реализации запросов с помощью TOraQuery
> и код обработки нажатия клавиши для исполнения запроса.

Забыл только сумму озвучить.


Наверх

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