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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2010, 23:22   #1
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию MySQL: таблицы и их движки

Вопрос номер раз.
Вычитал в справочном руководстве по MySQL, что
Цитата:
MySQL поддерживает два различных типа таблиц: транзакционные (InnoDB и BDB) и без поддержки транзакций (HEAP, ISAM, MERGE и MyISAM)
В моей БД сейчас движок MyISAM (при создании БД в MySQL - он стоит по умолчанию).
Значит ли это, что транзакции как таковые вообще неприменимы? Или ошибки не будет, но смысла применять нету?

Вопрос номер два.
Подскажите правильный (читай - как пишет "книжка") вариант работы с данными БД MySQL (операции insert, edit, delete ...).
Имеется в виду - использовать напрямую Query+DataSource? Или более сложно - Query+DataSetProvider+ClientDataSet +DataSource? Или иной вариант...


И появился только что ещё один вопрос. Не на 100% относится к теме, но отдельную создавать не вижу смысла, т.к. по сути - всё тот же MySQL.
Итак, есть 2 таблицы: одна - предприятия (Id: Integer - ключ, NameEnterpr: Varchar(25) - название), вторая - объекты предприятий (Id: Integer - ключ, EntId: Integer - ключ-ссылка на Id первой таблицы).
Т.е. при создании новой записи нужно в поле EntId 2-й таблицы записать значение Id 1-й таблицы.
Когда база была на BDE - использовал DBLookupComboBox (ListField=NameEnterpr, KeyField=Id, DataField=EntId), всё работало.
Сейчас же (в MySQL) при попытке редактировать с помощью этого компонента - выдаёт ошибку "Cannot access field 'EntId' as type Variant." Как разрешить проблему?

Спустя ...цать минут решить эту проблему успел сам
Собственно - заменил борландовский DBLookupComboBox на джидаевский JvDBLookupCombo. Смысл компонентов - один и тот же. Но чего родной не захотел работать с MySQL - остаётся только гадать...
По соотношению цена-качество, халявное пиво не имеет конкурентов.

Последний раз редактировалось palevg; 23.12.2010 в 03:11. Причина: Ответ на 3-й вопрос найден :)
palevg вне форума Ответить с цитированием
Старый 07.01.2011, 01:07   #2
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию

Сижу вот и думаю - где же попрятались гуру MySQL ? ))))
Первые два вопроса как бы ещё актуальны...

База на MyISAM работает, в принципе всем доволен, но хотелось бы ясности!
По соотношению цена-качество, халявное пиво не имеет конкурентов.
palevg вне форума Ответить с цитированием
Старый 07.01.2011, 01:12   #3
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

MyISAM - быстрее всех (кроме memory), но есть два минуса:
- Восстанавливать после падения можно только из бэкапов,
- Табличная блокировка редактирования записей.
Данный тип хорош для данных, которые редко меняются.
Виталий Желтяков вне форума Ответить с цитированием
Старый 07.01.2011, 01:41   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
Восстанавливать после падения можно только из бэкапов
Да, но они редко ломаются полностью. У меня многократно бывало, что отключали свет, летела сеть и т.п., т.е. происходила внезапная остановка сервера. Таблицы либо не ломались совсем, либо запрос REPAIR TABLE их нормально лечил... Дамп баз я делаю регулярно, но пока он (тьфу... тьфу... тьфу) не разу не понадобился.
_SERGEYX_ вне форума Ответить с цитированием
Старый 11.02.2011, 21:36   #5
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию

Спасибо, успокоили

А как насчёт:
Цитата:
Вопрос номер два.
Подскажите правильный (читай - как пишет "книжка") вариант работы с данными БД MySQL (операции insert, edit, delete ...).
Имеется в виду - использовать напрямую Query+DataSource? Или более сложно - Query+DataSetProvider+ClientDataSet +DataSource? Или иной вариант...
По соотношению цена-качество, халявное пиво не имеет конкурентов.
palevg вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связать таблицы (mysql) aisthetes SQL, базы данных 0 28.03.2010 14:45
Как импортировать в MySql таблицы из web? NurNet Общие вопросы .NET 1 19.08.2009 09:37
Вывод пар из таблицы mysql Алежа PHP 2 26.05.2009 22:18
Удаление, обновление записей из MySQL таблицы xDjarx БД в Delphi 2 14.05.2008 13:36
Mysql Таблицы вроде.. Юрий777 PHP 4 28.02.2008 09:50