Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
У клиента стоит база на Акцессе (которую я и написал), но со временем количество юзеров выросло и стали возникать проблеммы типа "Нераспознаваемы формат БД" Я сделал всякие автоматические востановления и архивации, но все равно сей глюк напрягает... Поэтому решил приспособить что-то другое. Перечитал форум и присмотрелся к FireBird. Клиет-серверная структура типа FireBird->C++Builder (Delphi) мне конечно по душе, но возникает ряд воросов... Если знатокам не трудно то просвятите...please 1. К каким косякам надо готовится, используя FireBird (м.б. "Нераспознаваемый формат БД" у акцесса это цветочки)? 2. Неужели у C++Builder (Delphi) для просмотра таблиц только DBGrid и есть, а все остальное только ручками или подходящий ActiveX искать (я имею ввиду что у Акцесса ленточную форму можно как угодно настроить, а DBGrid чувствуются ограничения, /ну например два поля друг под другом в одной строке/)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 04:03 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
судя по ленточным формам - клиент у вас на аксесе? ну и на кой ляд вам геморой со сменой как клиентской части, так и "серверной"? оставьте клиента на аксесе, а базу перенесите на MS SQL (или полный, или бесплатный MSDE). и будет вам щастье. минимальные переделки - и про нераспознаваемый формат можете забыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 04:09 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
Да, сейчас клиентская и "серверная" часть на Акцессе, но дело в том, что требуется разработка приложения с активной работой по карте (т.е. с графикой), а из моего опыта работы в Акцессе, когда дело касается OLE объектов, то начинаются тормоза (это я в формы вставлял картинки, для определения состояния той или иной записи). Поэтому с целью ускорения работы с графикой и решил рассматривать что-то иное. ЗЫ. Может кто еще подскажет, как создать поле счетчика (автоинкремента) в FireBird? Генератор и триггер я создал. В самом FireBird'е счетчик полей работает, но когда в таблицу из Builder'а пишешь, то нифига не инкрементирует. Требует задать значение вручную :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 06:34 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
первое правило разработчика баз данных в BCB/Delphi - _никогда_ не используй TTable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 07:26 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
вот еще, не правило но рекомендация: не позволяй пользователю редактировать/добавлять записи прямо в гриде. делай модальное окошко, в котором пользователь вводит нужные поля и нажатием кнопки "сохранить" или там "ок" коммитит данные. и еще рекомендация. если ты используешь TDBNavigator - _забудь_ про него :-) ни в одном моем проекте нет этого навигатора, но это, конечно, возможно следствие моей врожденной тупости и все остальные часто его используют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 07:30 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
вот еще, не правило но рекомендация: не позволяй пользователю редактировать/добавлять записи прямо в гриде. делай модальное окошко, в котором пользователь вводит нужные поля и нажатием кнопки "сохранить" или там "ок" коммитит данные. Хмм... Прости господи, какое-то уродское правило (имхо) Причем встречаю такое уже не в первый раз. Кажись подобный стиль характерен и для дельфей, и для VB. Можно спросить, в дельфях и VB что, имеются какие-то проблемы с databound контролами и гридами? сори за оффтоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 07:41 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
какое правило по твоему уродское? то, которое я назвал рекомендацией а не правилом? ну это не важно. я за других не скажу, но в моей практике такой подход себя ничем не дискредитировал, более того, в тех формах, где значения менялись прямо в гриде, некоторые торопливые невнимательные пользователи мне потом доказывали, вот я этого не меняла/не делала а оно тут стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 08:36 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
Ledokol1. К каким косякам надо готовится, используя FireBird (м.б. "Нераспознаваемый формат БД" у акцесса это цветочки)? Что забудешь где сервер стоит. Ledokol2. Неужели у C++Builder (Delphi) для просмотра таблиц только DBGrid и есть, а все остальное только ручками или подходящий ActiveX искать (я имею ввиду что у Акцесса ленточную форму можно как угодно настроить, а DBGrid чувствуются ограничения, /ну например два поля друг под другом в одной строке/)? Еще есть DBCtrlGrid. Кроме стандартных гридов есть масса сторонних компонент. На мой взгляд одни из самых популярных QuantumGrid и TDBGridEh. Последним пользуюсь, очень неплох. LedokolМожет кто еще подскажет, как создать поле счетчика (автоинкремента) в FireBird? Генератор и триггер я создал. В самом FireBird'е счетчик полей работает, но когда в таблицу из Builder'а пишешь, то нифига не инкрементирует. Требует задать значение вручную :( Довольно частый вопрос у новичков. Посмотри в архивах в соответствующем форуме. Недели две назад обсуждали. Я делаю через ХП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 08:53 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
Лох ПозорныйХмм... Прости господи, какое-то уродское правило (имхо) Кажись подобный стиль характерен и для дельфей, и для VB. Можно спросить, в дельфях и VB что, имеются какие-то проблемы с databound контролами и гридами? У меня такая "уродская" практика сложилась еще со времен Clipper. Тогда шла борьба с зависшими блокировками, разрушенными индексами и прочими прелестями файл-серверной технологии. Но оказалось, что и на КС она неплохо работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 09:01 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
alex_kя за других не скажу, но в моей практике такой подход себя ничем не дискредитировал, более того, в тех формах, где значения менялись прямо в гриде, некоторые торопливые невнимательные пользователи мне потом доказывали, вот я этого не меняла/не делала а оно тут стоит. Тут желательно добавить либо фискальную таблицу, либо фискальные поля в каждую таблицу и фиксировать кто и когда вносил изменения. Иначе всегда будешь крайний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 09:04 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
Еще есть DBCtrlGrid. Кроме стандартных гридов есть масса сторонних компонент. На мой взгляд одни из самых популярных QuantumGrid и TDBGridEh. Последним пользуюсь, очень неплох. Сразу возникает вопрос: где раздобыть QuantumGrid и TDBGridEh? Во вкладках BCB не нашел... LedokolМожет кто еще подскажет, как создать поле счетчика (автоинкремента) в FireBird? Генератор и триггер я создал. В самом FireBird'е счетчик полей работает, но когда в таблицу из Builder'а пишешь, то нифига не инкрементирует. Требует задать значение вручную :( Довольно частый вопрос у новичков. Посмотри в архивах в соответствующем форуме. Недели две назад обсуждали. Я делаю через ХП.[/quot] Что значит ХП? (извиняюсь за назойливость) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 09:38 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
LedokolСразу возникает вопрос: где раздобыть QuantumGrid и TDBGridEh? Во вкладках BCB не нашел... Это сторонние компоненты и их надо доустанавливать. TDBGridEh можно скачать по http://www.farpost.com/personal/dmitryb Вообще есть такой сайт - TORRY . Там можно найти компоненты на все случаи жизни. LedokolЧто значит ХП? (извиняюсь за назойливость) Ничего страшного. ХП - это хранимая процедура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 10:38 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
2 alex_k более того, в тех формах, где значения менялись прямо в гриде, некоторые торопливые невнимательные пользователи мне потом доказывали, вот я этого не меняла/не делала а оно тут стоит Да пусть доказывает что угодно - если на права на изменение есть только у этого пользователя, а в логе изменений прописан его логин. Для невнимательных можно дополнительный confirm сделать. Однако обычно просят сделать шоб было как можно удобнее, а не как можно неудобнее (зато типа не ошибешься). 2 f_w_p У меня такая "уродская" практика сложилась еще со времен Clipper. Тогда шла борьба с зависшими блокировками, разрушенными индексами и прочими прелестями файл-серверной технологии. Но оказалось, что и на КС она неплохо работает. Простите, а ФС и КС здесь причем? Что, вынос редактирования из непосредственно грида в отдельную формочку - позволит не блокировать изменяемые записи? Или индексы перестанут рушиться? моя не понимай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 11:57 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
авторПростите, а ФС и КС здесь причем? Что, вынос редактирования из непосредственно грида в отдельную формочку - позволит не блокировать изменяемые записи? Или индексы перестанут рушиться? Угу, позволит. Потому что оттуда, из отдельной формы, через ХП данные меняются, а не напрямую. авторДля невнимательных можно дополнительный confirm сделать. Я делал на удаление аж три конфирма - когда удалили, пришли и говорят: я три раза ОК нажал и все удалилось -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 12:15 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
Необходимость использования модальной формы диктуется ИМХО кривостью гридов. А что, грид на изменение строки не может соответствующую ХП вызвать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 12:44 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
Может. Но я также считаю, что редактирование данных в гриде, кроме особых случаев, это есть нехорошо и неудобно (особенно когда у вас 25 полей и половина из них списки и чекбоксы), поэтому нигде так не делаю - только отдельной формой, правда модальной или немодальной в зависимости от разных вещей -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 12:56 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
2 tygra : скорей вопрос в том. как результат редактировая грида отправлять в базу. Я считаю правильным отравлять не построчно, а одной транзакций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 13:04 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
tygra авторПростите, а ФС и КС здесь причем? Что, вынос редактирования из непосредственно грида в отдельную формочку - позволит не блокировать изменяемые записи? Или индексы перестанут рушиться? Угу, позволит. Потому что оттуда, из отдельной формы, через ХП данные меняются, а не напрямую. Что позволит? В момент фиксации изменений не блокировать запись? Покажите мне такую модальную форму и такую ХП Кстати, смешались в кучу кони, люди... Где вы в файл-серверной архитектуре ХП нашли? Или наоборот, где в клиент-серверной - изменение "напрямую"? Для ФС - один хрен напрямую, что через доп.форму, что через грид. Для КС - один хрен через Update-запрос из грида или вызов сохраненки из формы. Не думаете же вы, что грид напрямую с mdf и ldf файлами работает (для MS SQL)? tygraНо я также считаю, что редактирование данных в гриде, кроме особых случаев, это есть нехорошо и неудобно (особенно когда у вас 25 полей и половина из них списки и чекбоксы) Кто вам мешает в гриде списки и чекбоксы держать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 13:06 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
Alexey Sh2 tygra : скорей вопрос в том. как результат редактировая грида отправлять в базу. Я считаю правильным отравлять не построчно, а одной транзакций Надо транзакцией - делайте транзакцию. По кнопке ей делайте коммит. Зачем для транзакции дополнительная форма? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 13:07 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
У меня тут еще вопрос возник... а ADO компоненты не проще будет использовать? И еще если с их помощью через JET провадера с .mdb файлом работать то это уже ФС сиситема получиться? ЗЫ Я понимаю, вопрос немного не по теме, но вот этот геморой с обычным автоинкрементом меня немного напрягает (может потомучто система для меня новая) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 14:09 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
авторКто вам мешает в гриде списки и чекбоксы держать? Я же написал: неудобно редактировать в гриде, если полей больше трех штук. Не видит юзер все данные сразу, поэтому ошибок больше и "производительность" меньше :) По поводу блокировок - ну да, в фс ничего не спасет, если только выполнить update/insert отдельно. автор2 tygra : скорей вопрос в том. как результат редактировая грида отправлять в базу. Я считаю правильным отравлять не построчно, а одной транзакций Если вы говорите о клиентских транзакциях, и транзакции открываете перед началом редактирования и закрываете после, да еще после редактирования нескольких строк, то это самый неправильный способ :) Или вы что-то иное имели ввиду? -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 14:29 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
tygra автор2 tygra : скорей вопрос в том. как результат редактировая грида отправлять в базу. Я считаю правильным отравлять не построчно, а одной транзакций Если вы говорите о клиентских транзакциях, и транзакции открываете перед началом редактирования и закрываете после, да еще после редактирования нескольких строк, то это самый неправильный способ :) Или вы что-то иное имели ввиду? Я думаю человек имел ввиду кэшированные изменения (отложенное сохранение изменений данных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 14:33 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
tygraЯ же написал: неудобно редактировать в гриде, если полей больше трех штук. Не видит юзер все данные сразу, поэтому ошибок больше и "производительность" меньше :) Т.е. пока пользователь на грид просто смотрит - он все поля видит, а как только надо редактировать - тут же перестает поля видеть? Очень странная избирательность В аксесе правда с этим проще. Там пользователь любой грид может перевести в режим просмотра/редактирования одиночной записи и обратно. Однако при этом меняется только внешний вид, привязка к данным, возможность редактирования и возможность перехода по записям никуда не изчезают tygraПо поводу блокировок - ну да, в фс ничего не спасет, если только выполнить update/insert отдельно. От чего надо спасать ФС? От блокировок? Какая разница когда возникнет блокировка - в тот момент когда пользователь запись в гриде начнет сохранять, или в тот момент когда он из доп. формы запрос запустит (нажатием на кнопку)? И какая разница - ФС или КС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 14:47 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
авторТ.е. пока пользователь на грид просто смотрит - он все поля видит, а как только надо редактировать - тут же перестает поля видеть? Очень странная избирательность Т.е. вы утверждаете, что сразу сможете увидеть полностью 15 полей в гриде? Без прокрутки по полям? Ну если так, то значит вы не землянин :)) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 15:06 |
|
||
|
Access или FireBird?
|
|||
|---|---|---|---|
|
#18+
ЛПДля ФС - один хрен напрямую, что через доп.форму, что через грид. С чего вы это взяли. Не зря ж писали такие функции как RecordToArray() и ArrayToRecord(). ЛПНе думаете же вы, что грид напрямую с mdf и ldf файлами работает (для MS SQL)? А вот тут я с вами полностью согласен. В том то и дело, что не напрямую. И с разными серверами по-разному:-(. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 15:11 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32938491&tid=1553916]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 171ms |
| total: | 276ms |

| 0 / 0 |
