![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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
> и код обработки нажатия клавиши для исполнения запроса.
Забыл только сумму озвучить.