Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.18;
Скачать: CL | DM;

Вниз

Проблема... Access   Найти похожие ветки 

 
Bes ©   (2003-08-28 05:02) [0]

вообщем есть 10~20 файлов MS Access (расширение *.mdb)...
мне нужно средством ADOQuery послать SQL запрос сразу всем этим базам данных, и получить отчет ...

я делал так, пускал цикл и менял в параметре AdoQuery1.ConnectionString поле Catalog, а потом инфу перекачивал в StringGrid
все нормально, но 1ых долго, во вторых утомительно...

Мастера! Помогите, как максимально увеличить скорость обработки запроса (или сделать его так чтоб прога не подвисала).... и попутный вопрос: можно ли из к DBGrid подключить несколько источником (DataSourcе), ну т.е. у меня есть 10 компонентов TAdoQuery и чтоб не для каждой создавать свою DBGrid а что в одну все сливалось?
спасибо!

ЗЫ: предложения поменять БД на ченить другое не поможет...не от меня зависит...


 
roottim   (2003-08-28 08:11) [1]

как помнится в акцесе есть такая штука как связь с таблицами
(кликни на список таблиц и в попапе)
вот мб если тебе создать бд и скидать туда все завязаннаые мдб
а там подключайися и делай по ним запрос...
гарантий не даю...


 
sniknik ©   (2003-08-28 08:22) [2]

запросы делай к внешней базе, можно сразу к 2 (вот к 10 не знаю) но даже так гораздо быстрее.
ну можно попробовать так
SELECT * FROM TableFromCurrentBase
UNION ALL
SELECT * FROM TableBase2 IN "D:\xxxxx\Base2.Mdb"
UNION ALL
....
смысл понятен

(попробуй сначала на 2-х, после добавляй остальные)
попутно решится и "попутный" вопрос.
если не получатся все 10 то все одно не используй StringGrid можно извернутся с передачей данных в 1 рекордсет, будет гораздо быстрее.


 
Bes ©   (2003-08-28 15:19) [3]

sniknik, а если база запаполена?


 
Hawk2 ©   (2003-08-28 15:36) [4]

Если все таблицы одинаковой структуры почему бы их не слить в одну и работать с одной. Или каждая база очень большая?

На счет TDataSourcе если у тебя для каждого TAdoQuery он свой то можно использовать один DBGrid, просто меняешь свойство Грида которое называется тоже DataSourcе. Вот так:
DBGrid1.DataSource:=DataSource1;
потом
DBGrid1.DataSource:=DataSource2; и т.д.
А если к тебя один TDataSourcе и один TDBGrid, тогда в TDataSourcе свойству DataSet присваиваешь TAdoQuery. Вот так:
DataSource1.DataSet:=AdoQuery1;
потом
DataSource1.DataSet:=AdoQuery2; и т.д.

А использовать StringGrid для вывода данных из базы это извращение.


 
sniknik ©   (2003-08-28 15:46) [5]

та к которой доступ пароль 11
SELECT * FROM TableBase2 IN "" [MS Access; PWD=11;DATABASE=D:\BASE2.MDB;]
та из которой доступ в строке подключения должно быть прописано


 
sniknik ©   (2003-08-28 15:50) [6]

кстати, если у тебя постоянно работа с 10 таблицами то почему бы в "головной"(или главной) не сделать линки на нужные? они быстрее чем запросы с IN.


 
Bes ©   (2003-08-28 19:44) [7]

2 sniknik, можешь по подробнее про "головную" и линки...и если можно примерчик...

2 Hawk2, так будут выводиться только данные одного компонента, а мне нужно чтобы всех...ну тоесть чтобы DBGrid не очищалась а просто добавляла к уже имеющися записи... если я не прав, подкинь примерчик..

фенк


 
sniknik ©   (2003-08-28 19:57) [8]

какой примерчик? ты что. определи (для себя) какая база у тебя главная, открываеш ее аксесом, дальше "файл"->"внешние данные"->"связь с таблицами" ... после того как нажмеш кнопку тут тебя озарение и посетит. :о))



Страницы: 1 вся ветка

Текущий архив: 2003.09.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
6-58808
leonidus
2003-07-11 11:53
2003.09.18
Отключение щелчков при переходе по ссылкакм в TWebBrowser`е


3-58534
Domkrat
2003-08-28 23:54
2003.09.18
Firebird + IBX 7


14-58861
Dmitriy O.
2003-09-01 08:55
2003.09.18
Всех поздравляю с днем знаний


3-58563
zorik
2003-08-27 13:50
2003.09.18
сайт по IB


1-58662
Olvin
2003-09-03 08:44
2003.09.18
Как отправить *.prn файл на один из принтеров установленных в сис