Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по БД, использование BDE 
:(
    Опции темы
PILOT
Дата 13.3.2004, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Вопрос такой:
Я составил приблизительную структуру БД из трех связанных таблиц и хочу ее реализовать в виде удаленной БД.
В книгах я вижу решение этой задачи с использованием BDE. Но мне бы не хотелось использовать BDE, т.к. драйвер этот нужно инсталировать (я знаю как внедрять его в инсталяционный пакет, но в данной задаче нужно обойтись без этого). Так же не хочется использовать InterBase.
1) Есть ли решения позволяющие решать подобную задачу без BDE? какие?
2) Каким образом в БД можно хранить фотографии JPEG?
3) Есть ли сжатые форматы таблиц (чтобы База не разрасталась)?

Спасибо.

СУВ.




--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Pakshin A. S.
Дата 13.3.2004, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



ADO?
PM   Вверх
<Spawn>
Дата 13.3.2004, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



1)Без использования какой либо существующей СУБД - написать все самому))))
2)Для хранения картинок используй BLOB поля таблицы.
3)То есть не разрасталась? Это уже все будет зависить от того как ты спроектировал ее, можно ведь контролировать вносимые данные, своевременно удалять старые и т.д.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
PILOT
Дата 13.3.2004, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Спасибо!
ADO установлен по умолчанию?

СУВ.



--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 13.3.2004, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



По моему ADO дожен поддерживаться большиством Винд, но тончо уверять не могу - не проверял


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
x77
Дата 14.3.2004, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



ну, не совсем ADO... скорее, мидас. есть там такая штука - TClientDataset, позволяет организовать flat-file базу данных. для инсталляции потребуется скопировать в систему midas.dll. возможности те же, что и при работе с обычными таблицами. БДЕ не требуется.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
December
Дата 14.3.2004, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



АДО в 9Х, МЕ и НТ - есть по дефаулту.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Jey_k
Дата 14.3.2004, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



Пробуй ODBC этот прописан в любой винде, через него Acces работает


--------------------
PM MAIL WWW   Вверх
x77
Дата 14.3.2004, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



Jey_k, ODBC - это не субд. это средство, позволяющее работать с различными СУБД через некий унифицированный механизм. и кроме него всё равно понадобиться либо БДЕ, либо Interbase, либо что-то ещё, твоё предложение проблемы не решает.



--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
PILOT
Дата 15.3.2004, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Спасибо.

Вопрос опять smile.gif

Как связать 3 таблицы вида (поля заголовков без ненужных полей (обозн. Data)):
1) ObjNum(+)(ключевое), Date, Time, Data
2) TypeNum(+)(ключевое), ObjNum, Data
3) Num(+)(ключевое), TypeNum, Data

Это заголовки (поля). Как связать поля разных таблиц: ObjNum,TypeNum
чтобы на запрос из первой выпадали соответствующие (по этим самым ObjNum,TypeNum) данные из двух других таблиц?

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 15.3.2004, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Например так, если я не ошибся:

Код
create table Table1(
 ObjNum Integer not null primary key,
 ...
);

create table Table2(
 TypeNum Integer not null,
 ...,
 constraint c_fk_Tab1
 foreign key(TypeNum) references Table1(ObjNum)
);


А затем выбирай сколько угодно

Код
select * from Table1, Table2
 where Table1.ObjNum = Table2.TypeNum



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Proximo_RZN
Дата 16.3.2004, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 16.3.2004
Где: Рязань

Репутация: нет
Всего: нет



Попробуй использовать технологию тонких клиентов - это фактически СУБД, прикомпилируемая к твоей проге.
PM MAIL ICQ   Вверх
x77
Дата 16.3.2004, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



<Spawn> , если я правильно понимаю, имеется в виду работа с визуалкой.


PILOTIK, способов много. приведу один из самых простых.

создаёшь три запроса (TQuery) и три подключенных к ним источника данных (TDatasource) и настраиваешь следующим образом:

1. SQL := 'select objnum, "date", "time" from table1';

2. SQL := 'select typenum, objnum, data from table2 where objnum = :objnum';
DataSource := Datasource1;

3. SQL := 'select num, typenum, data from table3 where typenum = :typenum';
DataSource := DataSource2;

означает это следующее. с первым, я думаю, всё понятно - просто тупо берём из базы все значения. во втором вводим условие - objnum = :objnum. ":" - это стандартное обозначение параметра. по умолчанию нам бы пришлось перед открытием таблицы этот параметр задавать. но поскольку мы указали DataSource = DataSource1, то значение этого параметра будет браться из источника данных первой таблицы. для этого нужно, чтобы название параметра и поля, которое будет служить этим параметром, совпадали. по тому же принципу настраивается и третья квери.

теперь можно кинуть на форму три грида, привязать их к трём источникам данных, и при навигации по первому гриду будут меняться значения во втором и третьем, а при навигации по второму - только в третьем.

вариант с использованием TClientDataset (то, что предлагал я и то, что фактически предалагает
Proximo_RZN) работать с кверями не позволит, но там можно организовать это иначе. например через свойства MasterSource/MasterFields (что потребует создание соответствующих индексов), либо через ручную фильтрацию (свойства Filter и Filtered). Фильтрация дочерних таблиц реализуется программно в обработчике AfterScroll главных таблиц.

Добавлено @ 16:39
кстати, из тонких клиентов ещё стоит обратить внимание на такие штуки, как VolgaDB и SAM. достаточно навороченные библиотеки для работы с базами без БДЕ. Волга, по-моему, даже бесплатная.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Akella
Дата 16.3.2004, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



ADO или ODBC работают очень медленно, по сравнению с BDE.

Но можно использовать dbExpress - распространение всего двух или трех фалов вместе с программой (0.500-0.9 мБ)
PM MAIL   Вверх
PILOT
Дата 16.3.2004, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Цитата(x77 @ 16.3.2004, 13:36)
PILOTIK, способов много. приведу один из самых простых.

Спасибо!
Как сделаю отпишусь, т.к. возникнут еще вопросы... например почему нельзя JPEG заливать в БД? Он обязательно преобразуется в BMP ;(

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.