![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как выташить значени поля из другой таблицы соеденив его... [D5, easy table 6.03]
eger' © (2005-02-02 10:43:00)Уважаемые! Как выташить поле из другой таблицы соеденив его с результатом запроса. Пример: есть табли поставщиков и заказов им. Естественно в обоих есть поля связи. В результате хочется иметь ответ в виде - имя поставщика, № заказа, дата, сумма. Типа того. Как не пробовал всякие join ничего не получается. Подскажите ради бога.
eger' (2005-02-09 14:45:00) [1]2 Sergey13 ©:
неа, не мешает. чего бы ей мешать?
2 Danilka ©:
Я просто ищу простое решение, чтобы компилилось в приложение. Стоит попробовать "фиребирд эмбеддед"?
Danilka (2005-02-08 09:35:00) [2][45] eger' (07.02.05 17:55)
Угу. Значит, использование локального ADS это не есть "дополнительный софт вне приложения", а фиребирд эмбеддед, например, он самый и есть?
Sergey13 (2005-02-08 09:27:00) [3]2[45] eger' (07.02.05 17:55)
>все так-же привязка к дополнительному софту вне приложения...
Это как? Тебе ОС не мешает? 8-)
eger' (2005-02-07 17:55:00) [4]2 Polad:
Спасибо за совет!
2 Sergey13 ©:
>А чем например FireBird не устраивает? Или та же mdb, раз уже >есть?
все так-же привязка к дополнительному софту вне приложения... возможно, есть компоненты для работы с mdb, но я просто не искал...
Sergey13 (2005-02-07 16:11:00) [5]2[42] eger' (07.02.05 15:20)
А чем например FireBird не устраивает? Или та же mdb, раз уже есть?
Polad (2005-02-07 16:05:00) [6]Есть еще некий Advantage Database Server штука с Novell перекочевала.... можно гонять как серверный вариант так и локальный в случая с ADS это DataBase и FreeTables разработан был как движок для формата DBF потом приобрел свой формат ADT штука прикольная есть свои VCL компоненты для работы и редактор таблиц, (кстати довольно не плохой) много интересных вещей но есть и свои минусы, на мой взгляд лучше хорошо справится с небольшими локальными приложениями
eger' (2005-02-07 15:20:00) [7]2 Sergey13 ©:
Да, можно сказать что путаю.
На самом деле вопрос простой - получить код, который можно распостранять без BDE, базу иметь одним файлом, желательно криптованным. Пусть БД будет сколь угодно экзотическая, главное, чтобы функцию свою выполняла.
2 Danilka © :
Неа, не читал. Сделал так как посоветовали, да и на самом деле и без outer пробовал, как выяснилось все работоспособно, просто изи и абсолют не несут таких запросов, т.е. не могут их быстро отрабатывать.
Программа практически слеплена, а источник данных менять проблем не составляет. Исходные данные вообще в mdb лежат.... Разбираюсь на ходу.
Danilka (2005-02-07 14:58:00) [8][39] eger' (07.02.05 14:01)
> запрос нормальный - BDE его крутит в мгновение ока и результат
> соответсвует ожиданиям
О да, это, канечна, круто очень, однако про внешние соединения не почитал еще, не так-ли? outer join это внешнее соединение, нафига оно тебе здесь?
И вообще, всякие изи-табле, абсолюты и т.д., может стоит сначала разобрацца в терминологии, книжки умные почитать, СУБД под задачу выбрать, а уж затем программу лепить?
Sergey13 (2005-02-07 14:14:00) [9]2[39] eger' (07.02.05 14:01)
Ты по моему путаешь БД и компоненты доступа к БД.
Easy Table и Absolute Database - это вроде БД такие экзотические, а BDE - это компонент доступа. Что менять хочешь?
eger' (2005-02-07 14:01:00) [10]2 all:
запрос нормальный - BDE его крутит в мгновение ока и результат соответсвует ожиданиям. Если кто знает, что можно использовать вместо BDE (только чтоб компилилось в приложение) и чтобы работало хоть сколь-нибудь похоже на работу BDE, поделитесь. Easy Table и Absolute Database критики не выдерживают.... опробовано.
Danilka (2005-02-07 09:35:00) [11][34] eger' (04.02.05 15:41)
Посмотри в описании sql про джойны, в частности про outer.
[37] Sergey13 © (07.02.05 09:17)
:))
Sergey13 (2005-02-07 09:17:00) [12]2[36] eger' (04.02.05 16:14)
>вообще, текст запроса правильный?
Вопрос философский. 8-)
Если ошибку не выдает, значит синтаксически правильный. Если еще и результат правильный - значит запрос просто правильный. Если еще и работает быстро - запрос просто хорош.
eger' (2005-02-04 16:14:00) [13]2 Sergey13 © :
lol
вообще, текст запроса правильный?
Sergey13 (2005-02-04 15:46:00) [14]2[34] eger' (04.02.05 15:41)
> здесь что-то не так?
Шрифт не нравится?
eger' (2005-02-04 15:41:00) [15]2 ЮЮ © :
> select s.name,o.date,o.OrderNo
> from Orders o
> left outer join suppliers s on o.SupplierNo=s.SupplierNo
здесь что-то не так?
ЮЮ (2005-02-04 04:05:00) [16]>скорость выросла, но все равно слишком неприемлема. можно все таки сделать вложенный запрос?
Для начала показал бы текст медленного запроса.
Ибо, если "А так выборку делает мигом", а связывание со второй таблицей приводит к тормозам, то проблема или ав запросе или нашел неважную замену БДЕ, ибо даже он так не тупит :)
Anatoly Podgoretsky (2005-02-03 21:53:00) [17]eger' (03.02.05 13:09) [18]
Кстати что-то стало работать после того, как я в обоих таблицах сделал типы SupplierNo = Integer...
Integer оптимизирован по скорости работы. Размер особо не должен волновать, он просто ничто по сравнению с общим размером.
eger' (2005-02-03 20:15:00) [18]2 Соловьев © :
я неверное выразился, и получил соотв. ответ. не замену BDE я искал, а нечто, что может компилиться в код самого приложения.
2 all:
проиндескировал связанные поля, а также поля по которым идет отбор в обоих таблицах. скорость выросла, но все равно слишком неприемлема. можно все таки сделать вложенный запрос?
>сперва отобрать нужные записи из Orders, а затем к ним
> прицепить наименования из Suppliers? Как?
Соловьев (2005-02-03 19:46:00) [19]
> я искал замену DBE, пока остановился на этом варианте...
BDE?
Firebird, MSDE.
eger' (2005-02-03 19:43:00) [20]2 P.N.P. © :
что можете про нее сказать? я искал замену DBE, пока остановился на этом варианте...