Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2010, 20:05   #1
blr_spy
 
Регистрация: 25.07.2010
Сообщений: 8
По умолчанию Сохранение таблицы из dbgrid в файл (oracle, delphi)

Нужна ооочнь помощь!!
Программа сделана в delphi, которая отображает таблицы из oracle
таблицы в dbgrid
например выполнен запрос, появились данные ввиде таблицы в dbgrid

как ети данные сохранить в файл (желательно док)
тк если просто в тхт то все в разброс получается

заранее благодарен!
blr_spy вне форума Ответить с цитированием
Старый 25.07.2010, 21:21   #2
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Ищи по поиску "Экспорт DBGrid в Excel, Word"
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 26.07.2010, 00:33   #3
blr_spy
 
Регистрация: 25.07.2010
Сообщений: 8
По умолчанию

другой вопросик )
как вытянуть одну дату (т.е поиск только по году)
сделал эдит на форме и туда значение года
Код:
procedure TForm1.ComboBox2Change(Sender: TObject);
var a:string;
begin
a:=Edit2.Text;
If form1.ComboBox2.ItemIndex=0 then
adoQuery1.SQL.Text:='select Ustr.U_ID, Org.O_ID, Ustr.Inven_Nomer, Tip_Ust.Name from Tip_Ust, Ustr, Org where (Ustr.Data_Post>='+a+'01.01.'+Edit4.Text+a+'and Ustr.Data_Post<='+a+'31.12.'+Edit4.Text+a+'and Org.O_ID=Ustr.O_ID and Ustr.T_ID=Tip_Ust.T_ID)';
adoQuery1.Active:=true;
If form1.ComboBox2.ItemIndex=1 then
adoQuery1.SQL.Text:='select Ustr.U_ID, Org.O_ID, Ustr.Inven_Nomer, Tip_Ust.Name from Tip_Ust, Ustr, Org where (Ustr.Data_Post>='+a+'01.01.'+Edit5.Text+a+'and Ustr.Data_Post<='+a+'31.12.'+Edit5.Text+a+'and Org.O_ID=Ustr.O_ID and Ustr.T_ID=Tip_Ust.T_ID)';
adoQuery1.Active:=true;
If form1.ComboBox2.ItemIndex=2 then
adoQuery1.SQL.Text:='select Ustr.U_ID, Org.O_ID, Ustr.Inven_Nomer, Tip_Ust.Name from Tip_Ust, Ustr, Org where (Ustr.Data_Post>='+a+'01.01.'+Edit6.Text+a+'and Ustr.Data_Post<='+a+'31.12.'+Edit6.Text+a+'and Org.O_ID=Ustr.O_ID and Ustr.T_ID=Tip_Ust.T_ID)';
adoQuery1.Active:=true;
If form1.ComboBox2.ItemIndex=3 then
adoQuery1.SQL.Text:='select Ustr.U_ID, Org.O_ID, Ustr.Inven_Nomer, Tip_Ust.Name from Tip_Ust, Ustr, Org where (Ustr.Data_Post>='+a+'01.01.'+Edit7.Text+a+'and Ustr.Data_Post<='+a+'31.12.'+Edit7.Text+a+'and Org.O_ID=Ustr.O_ID and Ustr.T_ID=Tip_Ust.T_ID)';
adoQuery1.Active:=true;
If form1.ComboBox2.ItemIndex=4 then
adoQuery1.SQL.Text:='select Ustr.U_ID, Org.O_ID, Ustr.Inven_Nomer, Tip_Ust.Name from Tip_Ust, Ustr, Org where (Ustr.Data_Post>='+a+'01.01.'+Edit8.Text+a+'and Ustr.Data_Post<='+a+'31.12.'+Edit8.Text+a+'and Org.O_ID=Ustr.O_ID and Ustr.T_ID=Tip_Ust.T_ID)';
adoQuery1.Active:=true;
If form1.ComboBox2.ItemIndex=5 then
adoQuery1.SQL.Text:='select Ustr.U_ID, Org.O_ID, Ustr.Inven_Nomer, Tip_Ust.Name from Tip_Ust, Ustr, Org where (Ustr.Data_Post>='+a+'01.01.'+Edit9.Text+a+'and Ustr.Data_Post<='+a+'31.12.'+Edit9.Text+a+'and Org.O_ID=Ustr.O_ID and Ustr.T_ID=Tip_Ust.T_ID)';
adoQuery1.Active:=true;
end;
но выводит пустую таблицу
по гуглил нашел
SELECT VIN, TIME_NUMBER_SELLER, CIPHER_BUYER, DATE_SALE
FROM ACCOUNT_SALES
WHERE DATE_SALE between '2007/01/01' and '2007/12/31' ;
но чет не получается записать(

Последний раз редактировалось blr_spy; 26.07.2010 в 02:42.
blr_spy вне форума Ответить с цитированием
Старый 26.07.2010, 06:49   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

используйте параметрические запросы.

Поищите на форуме. Я давал подобные пример неоднократно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.07.2010, 07:59   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Плюс к этому я бы как минимум переписал пример так:
Код:
procedure TForm1.ComboBox2Change(Sender: TObject);
var a,b:string;
begin
 case form1.ComboBox2.ItemIndex of
  0:b:=Edit4.Text;
  1:b:=Edit5.Text;
  2:b:=Edit6.Text;
  3:b:=Edit7.Text;
  4:b:=Edit8.Text;
  5:b:=Edit9.Text;
 end;

with adoQuery1.SQL do begin
 Add('select Ustr.U_ID, Org.O_ID, Ustr.Inven_Nomer, Tip_Ust.Name');
 add(' from Tip_Ust, Ustr, Org');
 add(' where (Ustr.Data_Post>='+a+'01.01.'+b+a);
 add(' and Ustr.Data_Post<='+a+'31.12.'+b+a);
 add(' and Org.O_ID=Ustr.O_ID and Ustr.T_ID=Tip_Ust.T_ID)';
end;
...
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.07.2010, 11:13   #6
blr_spy
 
Регистрация: 25.07.2010
Сообщений: 8
По умолчанию

Stilet,

сделал как ты отписал
но результат пустая таблица(
blr_spy вне форума Ответить с цитированием
Старый 26.07.2010, 12:26   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
blr_spy
А ты не хочешь последовать совету Сержа Близнюкова?
Посмотри как работать с методом AddParameter для ADOQuery
У тебя просто запрос так составлен что условия неверны.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.07.2010, 13:39   #8
blr_spy
 
Регистрация: 25.07.2010
Сообщений: 8
По умолчанию

перепробовав множесто запросов вывод

в оракле когда создаю табл
Код:
Create table Ustr
(
U_ID number(6) primary key,
O_ID number(6) REFERENCES Org,
T_ID number(6) REFERENCES Tip_Ust,
OT_ID number(6) REFERENCES Otdel,
Name varchar(50),
Inven_Nomer varchar(10),
Data_Post date,
Tehn_har varchar(250)
)
Код:
INSERT INTO Ustr (U_ID, O_ID, T_ID, OT_ID, Name, Inven_Nomer, Data_Post, Tehn_har) VALUES(11111,1,111,11,'Intel Pentium 4','q1','12.01.2010','Asus P4P800-X HDD 40 Gb Samsung 7200 GeForce4 MX440 64Mb');
допустим при просмотре в оракле что получилось там дата имеет вид 12.01.10
а когда открываю таблицы в делфи программно там в ячейке 12.01.2010
или надо заново INSERT данные или в делфи задавать запрос чтоб формат даты был одинаков с оракуловским?
через to_date я чет не врубаюсь как там че писать )
blr_spy вне форума Ответить с цитированием
Старый 26.07.2010, 13:59   #9
blr_spy
 
Регистрация: 25.07.2010
Сообщений: 8
По умолчанию

через AddParameter пробовал чет не получается(
blr_spy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi+DirectShow (просмотр, запись в файл, сохранение кадров-одновременно)) Olddron Мультимедиа в Delphi 1 09.06.2010 09:56
Сохранение названия цвета в файл/Delphi Николай ПН Помощь студентам 0 29.04.2010 21:23
Сохранить DBGrid и Edit в файл (Delphi) Nair Помощь студентам 1 27.09.2008 09:38
Сравнение таблицы в Oracle с DBF Shanya БД в Delphi 1 12.05.2008 14:23
сохранение результата выборки из DBF файла в DBF файл с такой же структурой таблицы GazimagomedovM БД в Delphi 5 06.11.2007 17:58