Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];
ВнизКак объединить идентичные таблицы ADO 12 штук Найти похожие ветки
← →
Ирг (2009-09-22 12:27) [0]Как объединить идентичные таблицы ? ADO
A.dbf 12 штук между собой таблицы лежат в разных папках C:\1, C:\2- C:\12
D.dbf 12 штук между собой таблицы лежат в разных папках C:\1, C:\2- C:\12
Желательно в одном запросе или цикле
← →
sniknik © (2009-09-22 12:36) [1]обычным union-ом,
какая разница где они лежат, подключись к "базе" на уровень "ниже" всех, а путь дальше указывай в имени таблиц.
← →
Ирг (2009-09-22 12:58) [2]sniknik © СПАСИБО !!!
КАК БЫТЬ ЕСЛИ В ОДНОЙ ИЗ ПАПОК НЕ НАЙДЕТСЯ ТАБЛИЦЫ МНЕ НУЖНО ЧТОБ
ЗАПРОС ВСЕ РАВНО ПРОДОЛЖАЛ РАБОТАТЬ КАК ЭТО СДЕЛАТЬ ?
← →
Sergey13 © (2009-09-22 13:16) [3]> [2] Ирг (22.09.09 12:58)
> КАК ЭТО СДЕЛАТЬ ?
Программу надо писать. Как еще то? Проверять перед открытием, есть ли чего открывать. И по результатам проверки составлять запрос.
ЗЫ: Это твое творение? Если да, то я бы посоветовал начать переписывать с нуля на нормальной СУБД и с нормальным подходом.
← →
Ирг (2009-09-22 13:30) [4]Sergey13 ©
Есть 24 талибы dbf чужого творения мне нужно доставать от туда данные !
Можно ли создать Субд (какую лучше), в папки 1, 2 - 12 помесячно будут добавляться таблицы (январь 1я папка, февраль 2я папка.....) ?
как проверить есть ли чего открывать ?
WHILE (i=0, i<12, i++) как тут проверить
← →
Сергей М. © (2009-09-22 13:33) [5]
> Ирг (22.09.09 13:30) [4]
> как проверить есть ли чего открывать ?
Что толку проверять ?
Даже если на момент проверки файл окажется на месте, нет никакой гарантии что на момент открытия запроса он там по-прежнему будет находиться)
← →
Sergey13 © (2009-09-22 13:45) [6]> [4] Ирг (22.09.09 13:30)
> как проверить есть ли чего открывать ?
Ну я бы проверил наличие конкретного файла в конкретном месте. Например FileExists
> Можно ли создать Субд (какую лучше), в папки 1, 2 - 12 помесячно
> будут добавляться таблицы (январь 1я папка, февраль 2я папка.....)?
Ну СУБД создавать тебе рановато пока, с БД бы разобраться. Что толку что-то создавать, если база как я понял не твоя?
← →
Ирг (2009-09-22 14:32) [7]вСЕМ СПАСИБО БУДУ КОВЫРЯТЬСЯ ЕСЛИ ЧТО ПРИДУ ЗА ПОДМОГОЙ
← →
Ирг (2009-09-23 10:51) [8]sniknik © (22.09.09 12:36) [1]
обычным union-ом,
какая разница где они лежат, подключись к "базе" на уровень "ниже" всех, а путь дальше указывай в имени таблиц.
DataModule2.ADOQuery1.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\;Extended Properties=dBASE IV;Persist Security Info=False";
Select * From ("1\A.dbf"), ("2\A.dbf") ......("12\A.dbf")
Ошибка недопустимое имя 1\A.dbf
← →
Ирг (2009-09-23 13:57) [9]Select * From [c:\1\A.dbf], [c:\2\A.dbf] ......[c:\12\A.dbf]
не правельно определен объект parameter.....
а как правильно ?
← →
Leonid Troyanovsky © (2009-09-23 14:06) [10]
> Sergey13 © (22.09.09 13:45) [6]
> Ну я бы проверил наличие конкретного файла в конкретном
> месте. Например FileExists
Совершенно бесполезная функция, и более того, даже вредная.
Гораздо полезней получить исключение: "Путь/Файл не найден".
--
Regards, LVT.
← →
Sergey13 © (2009-09-23 14:11) [11]> [10] Leonid Troyanovsky © (23.09.09 14:06)
А в чем вредность функции и полезность исключения если
> [2] Ирг (22.09.09 12:58)
?
← →
Медвежонок Пятачок © (2009-09-23 14:13) [12]тем, что ее результаты верны для некоего момента в безвозвратно ушедшем прошлом
← →
Ирг (2009-09-23 14:18) [13]Хорошо мастерам философствовать
Помогли бы лучше хоть каким ни будь способом
← →
Leonid Troyanovsky © (2009-09-23 14:23) [14]
> Sergey13 © (23.09.09 14:11) [11]
> А в чем вредность функции и полезность исключения если
[5], [12].
А если исключение грамотно обработать,
то можно, например, и цикл продолжить.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2009-09-23 14:37) [15]
> Ирг (23.09.09 14:18) [13]
> Помогли бы лучше хоть каким ни будь способом
INSERT INTO "Customer.db" (CustNo, Company)
SELECT CustNo, Company
FROM "OldCustomer.db"
Конкретный синтаксис надо уточнять для выбранной engine.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2009-09-23 14:40) [16]
> Leonid Troyanovsky © (23.09.09 14:37) [15]
Ну и, конечно,TADOCommand.
--
Regards, LVT.
← →
Ирг (2009-09-23 14:42) [17]>>A.dbf 12 штук между собой таблицы лежат в разных папках C:\1, C:\2- C:\12
>>D.dbf 12 штук между собой таблицы лежат в разных папках C:\1, C:\2- C:\12
пробую так
DataModule2.ADOQuery1.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\;Extended Properties=dBASE IV;Persist Security Info=False";
Select * From [c:\1\A.dbf], [c:\2\A.dbf] ......[c:\12\A.dbf]
не правельно определен объект parameter....
← →
Leonid Troyanovsky © (2009-09-23 14:54) [18]
> Ирг (23.09.09 14:42) [17]
> Select * From [c:\1\A.dbf], [c:\2\A.dbf] ......[c:\12\A.
> dbf]
> не правельно определен объект parameter....
Тут, во-ще, много неправильного определено.
Научись сначала объединять две таблицы,
а дальше можно и циклом.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2009-09-23 15:10) [19]
> Ирг (22.09.09 13:30) [4]
> как проверить есть ли чего открывать ?
FindFirst, FindNext, FindClose Example
See also MatchesMask function.
--
Regards, LVT.
← →
sniknik © (2009-09-23 15:26) [20]и действительно, не так очевидно как думал... должно получится так
SELECT * FROM A IN "1" "dBASE IV;"
← →
sniknik © (2009-09-23 15:28) [21]Ирг (23.09.09 14:42) [17]
> ...
> не правельно определен объект parameter....
а где юнион?
← →
Sergey13 © (2009-09-23 15:33) [22]> [14] Leonid Troyanovsky © (23.09.09 14:23)
Ну, в принципе согласен, что исключение более отказоустойчивый вариант. Но не думаю, что у автора файлы появляются и исчезают с такой быстротой. Тем более что с функцией мне лично было бы собрать запрос удобнее. А исключение ловить на открытие запроса.
← →
Ирг (2009-09-24 08:47) [23]Спасибо большое пробую
← →
Ирг (2009-09-24 12:13) [24]>> sniknik ©
>>SELECT * FROM A IN "1" "dBASE IV;"
файл не может быть открыт "C:\1" ядромс базы данных Microsoft.Jet уже открыт для монопольного доступа или требуеться рзрешение на просмотр данныхDataModule2.ADOQuery1.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0; User ID=Admin;Data Source=C:\;Extended Properties=dBASE IV;Persist Security Info=False";
DataModule2.ADOQuery1.Close;
DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add("SELECT * FROM A IN "1" "dBASE IV;" ");
DataModule2.ADOQuery1.SQL.Add("UNION ALL SELECT * FROM A IN "2" "dBASE IV;" ");
DataModule2.ADOQuery1.SQL.Add("UNION ALL SELECT * FROM A IN "3" "dBASE IV;" ");
DataModule2.ADOQuery1.SQL.Add("UNION ALL SELECT * FROM A IN "4" "dBASE IV;" ");
DataModule2.ADOQuery1.SQL.Add("UNION ALL SELECT * FROM A IN "5" "dBASE IV;" ");
.........
DataModule2.ADOQuery1.SQL.Add("UNION ALL SELECT * FROM A IN "12" "dBASE IV;" ");
DataModule2.ADOQuery1.Active:=true;
← →
Ирг (2009-09-24 12:15) [25]как то не правильно подключаюсь ?
DataModule2.ADOQuery1.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0; User ID=Admin;Data Source=C:\;Extended Properties=dBASE IV;Persist Security Info=False";
← →
Ирг (2009-09-24 13:14) [26]Изменяюсь "dBASE IV;" не ставил ;
сейчас выходит если без Union ов просто один запрос если с ними то ничего нет
← →
Ирг (2009-09-24 13:23) [27]Все работает спасибо ВСЕМ !!!!!!!!!!
САМ ДУРАК
← →
Ирг (2009-09-24 13:47) [28]почему то не объединяет ? выдает данные 1 таблицы
← →
Ирг (2009-09-24 13:51) [29]Все нормально
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.006 c