Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Access или FireBird?  [new]
Ledokol
Member

Откуда: Россия
Сообщений: 112
У клиента стоит база на Акцессе (которую я и написал), но со временем количество юзеров выросло и стали возникать проблеммы типа "Нераспознаваемы формат БД" Я сделал всякие автоматические востановления и архивации, но все равно сей глюк напрягает...
Поэтому решил приспособить что-то другое. Перечитал форум и присмотрелся к FireBird. Клиет-серверная структура типа FireBird->C++Builder (Delphi) мне конечно по душе, но возникает ряд воросов...
Если знатокам не трудно то просвятите...please
1. К каким косякам надо готовится, используя FireBird (м.б. "Нераспознаваемый формат БД" у акцесса это цветочки)?
2. Неужели у C++Builder (Delphi) для просмотра таблиц только DBGrid и есть, а все остальное только ручками или подходящий ActiveX искать (я имею ввиду что у Акцесса ленточную форму можно как угодно настроить, а DBGrid чувствуются ограничения, /ну например два поля друг под другом в одной строке/)?
1 мар 05, 04:03    [1351060]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
судя по ленточным формам - клиент у вас на аксесе?
ну и на кой ляд вам геморой со сменой как клиентской части, так и "серверной"?
оставьте клиента на аксесе, а базу перенесите на MS SQL (или полный, или бесплатный MSDE). и будет вам щастье.
минимальные переделки - и про нераспознаваемый формат можете забыть.
1 мар 05, 04:09    [1351062]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
Ledokol
Member

Откуда: Россия
Сообщений: 112
Да, сейчас клиентская и "серверная" часть на Акцессе, но дело в том, что требуется разработка приложения с активной работой по карте (т.е. с графикой), а из моего опыта работы в Акцессе, когда дело касается OLE объектов, то начинаются тормоза (это я в формы вставлял картинки, для определения состояния той или иной записи). Поэтому с целью ускорения работы с графикой и решил рассматривать что-то иное.

ЗЫ.
Может кто еще подскажет, как создать поле счетчика (автоинкремента) в FireBird? Генератор и триггер я создал. В самом FireBird'е счетчик полей работает, но когда в таблицу из Builder'а пишешь, то нифига не инкрементирует. Требует задать значение вручную :(
1 мар 05, 06:34    [1351109]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
alex_k
Member

Откуда: krasnoyarsk
Сообщений: 6694
первое правило разработчика баз данных в BCB/Delphi - _никогда_ не используй TTable
1 мар 05, 07:26    [1351142]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
alex_k
Member

Откуда: krasnoyarsk
Сообщений: 6694
вот еще, не правило но рекомендация:
не позволяй пользователю редактировать/добавлять записи прямо в гриде.
делай модальное окошко, в котором пользователь вводит нужные поля и нажатием кнопки "сохранить" или там "ок" коммитит данные.

и еще рекомендация. если ты используешь TDBNavigator - _забудь_ про него :-)

ни в одном моем проекте нет этого навигатора, но это, конечно, возможно следствие моей врожденной тупости и все остальные часто его используют.
1 мар 05, 07:30    [1351149]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
вот еще, не правило но рекомендация:
не позволяй пользователю редактировать/добавлять записи прямо в гриде.
делай модальное окошко, в котором пользователь вводит нужные поля и нажатием кнопки "сохранить" или там "ок" коммитит данные.

Хмм... Прости господи, какое-то уродское правило (имхо)
Причем встречаю такое уже не в первый раз. Кажись подобный стиль характерен и для дельфей, и для VB.
Можно спросить, в дельфях и VB что, имеются какие-то проблемы с databound контролами и гридами?

сори за оффтоп.
1 мар 05, 07:41    [1351162]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
alex_k
Member

Откуда: krasnoyarsk
Сообщений: 6694
какое правило по твоему уродское?
то, которое я назвал рекомендацией а не правилом?
ну это не важно. я за других не скажу, но в моей практике такой подход себя ничем не дискредитировал, более того, в тех формах, где значения менялись прямо в гриде, некоторые торопливые невнимательные пользователи мне потом доказывали, вот я этого не меняла/не делала а оно тут стоит.
1 мар 05, 08:36    [1351267]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
Ledokol
1. К каким косякам надо готовится, используя FireBird (м.б. "Нераспознаваемый формат БД" у акцесса это цветочки)?

Что забудешь где сервер стоит.

Ledokol
2. Неужели у C++Builder (Delphi) для просмотра таблиц только DBGrid и есть, а все остальное только ручками или подходящий ActiveX искать (я имею ввиду что у Акцесса ленточную форму можно как угодно настроить, а DBGrid чувствуются ограничения, /ну например два поля друг под другом в одной строке/)?

Еще есть DBCtrlGrid. Кроме стандартных гридов есть масса сторонних компонент. На мой взгляд одни из самых популярных QuantumGrid и TDBGridEh. Последним пользуюсь, очень неплох.

Ledokol
Может кто еще подскажет, как создать поле счетчика (автоинкремента) в FireBird? Генератор и триггер я создал. В самом FireBird'е счетчик полей работает, но когда в таблицу из Builder'а пишешь, то нифига не инкрементирует. Требует задать значение вручную :(

Довольно частый вопрос у новичков. Посмотри в архивах в соответствующем форуме. Недели две назад обсуждали.
Я делаю через ХП.
1 мар 05, 08:53    [1351303]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
Лох Позорный
Хмм... Прости господи, какое-то уродское правило (имхо)
Кажись подобный стиль характерен и для дельфей, и для VB. Можно спросить, в дельфях и VB что, имеются какие-то проблемы с databound контролами и гридами?

У меня такая "уродская" практика сложилась еще со времен Clipper. Тогда шла борьба с зависшими блокировками, разрушенными индексами и прочими прелестями файл-серверной технологии. Но оказалось, что и на КС она неплохо работает.
1 мар 05, 09:01    [1351330]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
alex_k
я за других не скажу, но в моей практике такой подход себя ничем не дискредитировал, более того, в тех формах, где значения менялись прямо в гриде, некоторые торопливые невнимательные пользователи мне потом доказывали, вот я этого не меняла/не делала а оно тут стоит.

Тут желательно добавить либо фискальную таблицу, либо фискальные поля в каждую таблицу и фиксировать кто и когда вносил изменения. Иначе всегда будешь крайний.
1 мар 05, 09:04    [1351339]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
Ledokol
Member

Откуда: Россия
Сообщений: 112
Еще есть DBCtrlGrid. Кроме стандартных гридов есть масса сторонних компонент. На мой взгляд одни из самых популярных QuantumGrid и TDBGridEh. Последним пользуюсь, очень неплох.

Сразу возникает вопрос: где раздобыть QuantumGrid и TDBGridEh? Во вкладках BCB не нашел...

Ledokol
Может кто еще подскажет, как создать поле счетчика (автоинкремента) в FireBird? Генератор и триггер я создал. В самом FireBird'е счетчик полей работает, но когда в таблицу из Builder'а пишешь, то нифига не инкрементирует. Требует задать значение вручную :(

Довольно частый вопрос у новичков. Посмотри в архивах в соответствующем форуме. Недели две назад обсуждали.
Я делаю через ХП.[/quot]

Что значит ХП? (извиняюсь за назойливость)
1 мар 05, 09:38    [1351432]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
Ledokol
Сразу возникает вопрос: где раздобыть QuantumGrid и TDBGridEh? Во вкладках BCB не нашел...

Это сторонние компоненты и их надо доустанавливать. TDBGridEh можно скачать по
http://www.farpost.com/personal/dmitryb
Вообще есть такой сайт - TORRY. Там можно найти компоненты на все случаи жизни.

Ledokol
Что значит ХП? (извиняюсь за назойливость)

Ничего страшного. ХП - это хранимая процедура.
1 мар 05, 10:38    [1351650]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
ЛП
Guest
2 alex_k
более того, в тех формах, где значения менялись прямо в гриде, некоторые торопливые невнимательные пользователи мне потом доказывали, вот я этого не меняла/не делала а оно тут стоит

Да пусть доказывает что угодно - если на права на изменение есть только у этого пользователя, а в логе изменений прописан его логин.
Для невнимательных можно дополнительный confirm сделать. Однако обычно просят сделать шоб было как можно удобнее, а не как можно неудобнее (зато типа не ошибешься).

2 f_w_p
У меня такая "уродская" практика сложилась еще со времен Clipper. Тогда шла борьба с зависшими блокировками, разрушенными индексами и прочими прелестями файл-серверной технологии. Но оказалось, что и на КС она неплохо работает.

Простите, а ФС и КС здесь причем? Что, вынос редактирования из непосредственно грида в отдельную формочку - позволит не блокировать изменяемые записи? Или индексы перестанут рушиться?
моя не понимай
1 мар 05, 11:57    [1351986]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
автор
Простите, а ФС и КС здесь причем? Что, вынос редактирования из непосредственно грида в отдельную формочку - позволит не блокировать изменяемые записи? Или индексы перестанут рушиться?

Угу, позволит. Потому что оттуда, из отдельной формы, через ХП данные меняются, а не напрямую.

автор
Для невнимательных можно дополнительный confirm сделать.

Я делал на удаление аж три конфирма - когда удалили, пришли и говорят: я три раза ОК нажал и все удалилось

-- Tygra's --
1 мар 05, 12:15    [1352069]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
Необходимость использования модальной формы диктуется ИМХО кривостью гридов. А что, грид на изменение строки не может соответствующую ХП вызвать?
1 мар 05, 12:44    [1352248]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
Может.

Но я также считаю, что редактирование данных в гриде, кроме особых случаев, это есть нехорошо и неудобно (особенно когда у вас 25 полей и половина из них списки и чекбоксы), поэтому нигде так не делаю - только отдельной формой, правда модальной или немодальной в зависимости от разных вещей

-- Tygra's --
1 мар 05, 12:56    [1352321]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
2 tygra : скорей вопрос в том. как результат редактировая грида отправлять в базу. Я считаю правильным отравлять не построчно, а одной транзакций
1 мар 05, 13:04    [1352376]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
ЛП
Guest
tygra
автор
Простите, а ФС и КС здесь причем? Что, вынос редактирования из непосредственно грида в отдельную формочку - позволит не блокировать изменяемые записи? Или индексы перестанут рушиться?

Угу, позволит. Потому что оттуда, из отдельной формы, через ХП данные меняются, а не напрямую.

Что позволит? В момент фиксации изменений не блокировать запись? Покажите мне такую модальную форму и такую ХП
Кстати, смешались в кучу кони, люди... Где вы в файл-серверной архитектуре ХП нашли? Или наоборот, где в клиент-серверной - изменение "напрямую"? Для ФС - один хрен напрямую, что через доп.форму, что через грид. Для КС - один хрен через Update-запрос из грида или вызов сохраненки из формы. Не думаете же вы, что грид напрямую с mdf и ldf файлами работает (для MS SQL)?

tygra
Но я также считаю, что редактирование данных в гриде, кроме особых случаев, это есть нехорошо и неудобно (особенно когда у вас 25 полей и половина из них списки и чекбоксы)

Кто вам мешает в гриде списки и чекбоксы держать?
1 мар 05, 13:06    [1352384]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
ЛП
Guest
Alexey Sh
2 tygra : скорей вопрос в том. как результат редактировая грида отправлять в базу. Я считаю правильным отравлять не построчно, а одной транзакций

Надо транзакцией - делайте транзакцию. По кнопке ей делайте коммит. Зачем для транзакции дополнительная форма?
1 мар 05, 13:07    [1352392]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
Ledokol
Member

Откуда: Россия
Сообщений: 112
У меня тут еще вопрос возник... а ADO компоненты не проще будет использовать?
И еще если с их помощью через JET провадера с .mdb файлом работать то это уже ФС сиситема получиться?
ЗЫ
Я понимаю, вопрос немного не по теме, но вот этот геморой с обычным автоинкрементом меня немного напрягает (может потомучто система для меня новая)
1 мар 05, 14:09    [1352756]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
автор
Кто вам мешает в гриде списки и чекбоксы держать?

Я же написал: неудобно редактировать в гриде, если полей больше трех штук. Не видит юзер все данные сразу, поэтому ошибок больше и "производительность" меньше :)

По поводу блокировок - ну да, в фс ничего не спасет, если только выполнить update/insert отдельно.

автор
2 tygra : скорей вопрос в том. как результат редактировая грида отправлять в базу. Я считаю правильным отравлять не построчно, а одной транзакций

Если вы говорите о клиентских транзакциях, и транзакции открываете перед началом редактирования и закрываете после, да еще после редактирования нескольких строк, то это самый неправильный способ :)
Или вы что-то иное имели ввиду?

-- Tygra's --
1 мар 05, 14:29    [1352837]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
tygra
автор
2 tygra : скорей вопрос в том. как результат редактировая грида отправлять в базу. Я считаю правильным отравлять не построчно, а одной транзакций

Если вы говорите о клиентских транзакциях, и транзакции открываете перед началом редактирования и закрываете после, да еще после редактирования нескольких строк, то это самый неправильный способ :)
Или вы что-то иное имели ввиду?

Я думаю человек имел ввиду кэшированные изменения (отложенное сохранение изменений данных).
1 мар 05, 14:33    [1352857]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
ЛП
Guest
tygra
Я же написал: неудобно редактировать в гриде, если полей больше трех штук. Не видит юзер все данные сразу, поэтому ошибок больше и "производительность" меньше :)

Т.е. пока пользователь на грид просто смотрит - он все поля видит, а как только надо редактировать - тут же перестает поля видеть? Очень странная избирательность

В аксесе правда с этим проще. Там пользователь любой грид может перевести в режим просмотра/редактирования одиночной записи и обратно. Однако при этом меняется только внешний вид, привязка к данным, возможность редактирования и возможность перехода по записям никуда не изчезают

tygra
По поводу блокировок - ну да, в фс ничего не спасет, если только выполнить update/insert отдельно.

От чего надо спасать ФС? От блокировок?
Какая разница когда возникнет блокировка - в тот момент когда пользователь запись в гриде начнет сохранять, или в тот момент когда он из доп. формы запрос запустит (нажатием на кнопку)? И какая разница - ФС или КС?
1 мар 05, 14:47    [1352925]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
tygra
Member

Откуда: Тверь (Иркутск, Край)
Сообщений: 9997
автор
Т.е. пока пользователь на грид просто смотрит - он все поля видит, а как только надо редактировать - тут же перестает поля видеть? Очень странная избирательность

Т.е. вы утверждаете, что сразу сможете увидеть полностью 15 полей в гриде? Без прокрутки по полям? Ну если так, то значит вы не землянин :))

-- Tygra's --
1 мар 05, 15:06    [1353052]     Ответить | Цитировать Сообщить модератору
 Re: Access или FireBird?  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
ЛП
Для ФС - один хрен напрямую, что через доп.форму, что через грид.

С чего вы это взяли. Не зря ж писали такие функции как RecordToArray() и ArrayToRecord().

ЛП
Не думаете же вы, что грид напрямую с mdf и ldf файлами работает (для MS SQL)?

А вот тут я с вами полностью согласен. В том то и дело, что не напрямую. И с разными серверами по-разному:-(.
1 мар 05, 15:11    [1353085]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить