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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2011, 14:14   #1
dinaria
 
Регистрация: 20.05.2011
Сообщений: 6
По умолчанию Сохранение запроса tadoquery

Здравствуйте, уважаемые профи!
подскажите как сохранить запрос TADOQuery в dbf таблицу, предварительно создав ее
//делаю запрос
aq.Active:=false;
aq.SQL.Clear;
aq.SQL.Add('select Adres from ab_trg');
aq.SQL.Add('where Adres like "Кувшиново,%"');
aq.Active:=true;
//проверяю запрос на пустоту, если не пустой, то создаю папку с именем города и сохраняю в нее dbf файл с именем ab_trg
if aq.Recordset.RecordCount<>0 then
begin
aq.Open;
//здесь нужно сделать создание папки и сохранить в нее файл
end;

подскажите, пожалуйста, как это сделать!!!!
dinaria вне форума Ответить с цитированием
Старый 21.06.2011, 14:46   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

А через что Вы собираетесь обращаться к DBF ?!

можно, например, воспользоваться маленьким бесплатным компонентом TDBF...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.06.2011, 15:24   #3
dinaria
 
Регистрация: 20.05.2011
Сообщений: 6
По умолчанию

а можно без установки дополнительных компонентов? просто создать dbf файл и сохранить в него весь запрос)
dinaria вне форума Ответить с цитированием
Старый 21.06.2011, 15:41   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а можно без установки дополнительных компонентов?
а чем Вам дополнительные компоненты не угодили?!


Цитата:
просто создать dbf файл
DBF файл можно создавать или с помощью каких-то компонентов..
(ну, например, если уж так критично нельзя дополнительные - тогда попробуйте через BDE... это это зло, антиквариат, отстой и мастдай! К тому же этих компонентов нет в новых версиях Delphi (что правильно!))


либо можно создавать руками как двоичный файл. Но это предполагает знание структуры DBF, да и дополнительной работы программисту будет весьма ощутимый объём...

Цитата:
и сохранить в него весь запрос)
Вы хотели сказать - РЕЗУЛЬТАТЫ запроса..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.06.2011, 15:48   #5
dinaria
 
Регистрация: 20.05.2011
Сообщений: 6
По умолчанию

спасибо, попробую установить компонент)
dinaria вне форума Ответить с цитированием
Старый 21.06.2011, 15:58   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
спасибо, попробую установить компонент)
не за что!
Желаю удачи.

если что - обращайтесь! помогу, чем смогу...

p.s. ВАЖНО!
А какая у Вас версия Delphi ?
Если Delphi версия >=2009 - тогда поищите TDBF с поддержкой UNICODE. на офф.сайте такого нет - это уже умельцы доводили исходники до нужной кондиции самостоятельно...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.06.2011, 18:09   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от dinaria Посмотреть сообщение
а можно без установки дополнительных компонентов? просто создать dbf файл и сохранить в него весь запрос)
Если структура нового dbf заранее известна - хранить в ресурсе или каталоге exe пустой dbf нужной структуры и при необходимости копировать его в нужное место (дубово, но надежно и ни каких сторонних компонент). Далее читать в цикле исходный ADOQuery1 и загонять в ADOQuery2 нацеленный на новую таблицу Insert-ы и в конце ADOQuery2.ExecSQL
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.06.2011, 23:00   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
и загонять в ADOQuery2 нацеленный на новую таблицу Insert-ы и в конце ADOQuery2.ExecSQL
А ADOQuery2 через какого провайдера подключать? (ну в ConnectionString что должно быть прописано?)

Я работал с DBF через ADO с помощью Microsoft OLE DB Provider for FoxPro. Он бесплатный, взять его можно прямо на сайте MS, но его нужно устанавливать в систему.

А что, через JET тоже можно работать с DBF ? Или через что?...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.06.2011, 23:58   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Через JET не тестировал. Подключал через VFPOLEDB. И через MSDASQL (через ODBC), но только из процедур MS SQL. Я думаю можно MSDASQL и в ADO засунуть
Код:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Tables\;Mode=ReadWrite;Extended Properties=DBASE III;Persist Security Info=False
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Tables\;Mode=ReadWrite;Extended Properties=DBASE IV;Persist Security Info=False
Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Mode=ReadWrite;Initial Catalog=E:\Tables
Provider=VFPOLEDB.1;Data Source=E:\Tables\;Mode=ReadWrite;Password="";Collating Sequence=MACHINE;DELETED=False;CODEPAGE=866
Получилось и с JET. Везде есть соединение с DBF, везде возможны проблемы с кодировкой текстовых полей
Без ADO еще и BDE остается
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 22.06.2011 в 01:02.
Аватар вне форума Ответить с цитированием
Старый 09.07.2011, 21:58   #10
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

значит я закинул на форму адоконекш и построил строку соединения MS OLE DB PROVIDER FOR ODBC DRIVERS. ВОТ МОЯ СТРОКА СОЕДИНЕНИЯ
Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files;Mode=ReadWrite;Initial Catalog=E:\Мои документы\Документы\По работе\;
дальше закинул adoquery и указал ему на адоконекшн и забил sql запрос и ве поставил active, но в результате в dbgrid пусто хотя запрос у меня такой
select *
from xxx
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение базы MySQL в виде запроса... masterdela БД в Delphi 3 25.02.2009 07:01
сохранение результата запроса в таблицу БД stepchild БД в Delphi 11 13.06.2008 11:20
Ошибка компонента TADOQuery при загрузке запроса из файла в Delphi 2006 WhiteKoS Помощь студентам 2 16.02.2008 15:07
Отмена запроса на сохранение SlipKorn Microsoft Office Excel 1 14.06.2007 00:17