-
Я заметила такую вещь, что иногда у таблиц Paradox слетают файлы, хранящие описание таблицы (*.val). Можно ли ее восстановить программно? Подскажите пожалуйста, как это сделать
-
> Liones (07.11.2008 8:11:00) [0]
Вряд ли
-
Только вроде в этих файлах хранится не описание таблиц, а ограничения.
-
Ну может я не правильно выразилась, но суть не в этом. Как же все-таки быть с этими файлами?
-
> Как же все-таки быть
забыть про парадокс, особенно в многопользовательском окружении
-
> Liones (07.11.2008 9:28:03) [3]
C помощью Database Desktop воссоздать ограничения, файл создатся автоматически.
-
> Anatoly Podgoretsky © (07.11.08 10:50) [5] > [3]C помощью Database Desktop > воссоздать ограничения, файл создатся автоматически
хочется то чтобы это можно было сделать программно, чтобы пользователь мог не вникая в суть проблемы восстановить таблицы
-
> Правильный$Вася (07.11.08 10:34) [4] > забыть про парадокс, особенно в многопользовательском > окружении
приложение на одного пользователя
-
> чтобы пользователь мог не вникая в суть проблемы восстановить > таблицы
.. и при этом нафигачить кучу других, зачастую более серьезных проблем.
-
> Правильный$Вася (07.11.08 10:34) [4] > забыть про парадокс,
а что тогда? dbf - удаление записей не устраивает, записи же только помечаются на удаление. foxpro - у них заголовки таблиц слетают. с остальными как-то пока не знакома
-
> Правильный$Вася (07.11.08 10:34) [4] > забыть про парадокс,
а что тогда? dbf - удаление записей не устраивает, записи же только помечаются на удаление. foxpro - у них заголовки таблиц слетают. с остальными как-то пока не знакома
-
> Сергей М. © (07.11.08 11:48) [8] > и при этом нафигачить кучу других, зачастую > более серьезных проблем.
да зачем? можно же просто например добавить пункт меню типа "восстановление базы", пользователь не будет видеть вобще какие действия выполняет программа
-
> Liones © (07.11.08 11:51) [11]
Угу. А другой пользователь в это же время, ничего не зная об этом, начнет другую пользовательскую операцию над базой. В лучшем случае неразрешимые коллизии при этом приведут к нарушению ссылочной целостности, в худшем вы там со своими пользователями ухайдокаете свою базу так что она будет вообще не восстановима.
-
Восстановление базы пользователем вообще штука опасная, но если и должна применяться, то только в единственном случае - если она (база) используется строго монопольно и лежит на ПК пользователя
Для того, чтобы база нормально восстанавливалась после слетов программно надо писать соответствующую программу (т.е. не в предметном проекте, а в отдельном) и иметь образец БД с пустым содержимым (в смысле в таблицах нет записей) но полностью с ограничениями, индексами и т.д. Восстановление выполняется так: сначала база должны быть быгружена в архив (предварительно), причем в архив помещаются только данные безо всяких индексов, ограничений и т.д. При восстановлении БД "образца" копируется в целевой каталог и затем в эту пустую, но полнофункциональную в смысле "бизнес-логики" (если этот термин можно применить к локальной БД) "заливаются" записи из таблиц архива.
-
> Сергей М. © (07.11.08 11:56) [12]
база используется одним пользователем
-
Если проект новый, то рекомендую воспользоваться советами и отказаться от парадокса в пользу клиент-серверных систем. Время на освоение новых для Вас технологих сторицей окупится при эксплуатации проекта заказчиком.
-
> MsGuns © (07.11.08 12:01) [13]
В общем логику процесса я поняла. Так то в программе предусмотрено резервное архивирование базы, которое выполняется при выходе из программы. При выходе вся папка с базой архивируется раром и переносится в отдельную папку.
-
> MsGuns © (07.11.08 12:04) [15] > Если проект новый, то рекомендую воспользоваться советами > и отказаться от парадокса в пользу клиент-серверных систем. > Время на освоение новых для Вас технологих сторицей окупится > при эксплуатации проекта заказчиком.
Согласна, но проблема в нехватке времени. Да я и пыталась найти хоть какой-нибудь материал для обучения, всего много и разрозненно. Может посоветуете что-нибудь стоящее
-
> а что тогда? dbf - удаление записей не устраивает, записи > же только помечаются на удаление.
dbf-ник можно pack-овать, и тогда все помеченные на удаление записи удалятся физически. Но правильно говорят те, кто советует перейти на клиент-серверную платформу - это самый мудрый выход из ситуации. От себя же добавлю, что лучше Interbase/Firebird здеь не найти. Особенно в Вашем случае.
-
> Liones © (07.11.08 12:04) [14]
Тогда, при условии что база локальная, падение валидационных файлов - довольно странное явление..
-
> Сергей М. © (07.11.08 12:20) [19] > Тогда, при условии что > база локальная, падение валидационных файлов - довольно > странное явление..
Но мне это не приснилось точно)))))
-
> GRAND © (07.11.08 12:14) [18] > ...лучше Interbase/Firebird здеь не > найти. Особенно в Вашем случае.
Подскажите пожалуйста, где найти информацию, чтобы хоть знать что это
-
>Liones © (07.11.08 12:10) [17] >Согласна, но проблема в нехватке времени. Да я и пыталась найти хоть какой-нибудь материал для обучения, всего много и разрозненно. Может посоветуете что-нибудь стоящее
Хорошей литературы для БЫСТРОГО И ЭФФЕКТИВНОГО обучения КС технологиям с нуля не знаю. Сам осваивал на акцесе - доступно, достаточно быстро, удобно. В качестве примеров брал примеры, прилагаемые в самой делфе. По сиквелю советую начать с азов, неплохо изложенных в той же делфишеой справке в разделе Local SQL, а дальше - зависит от скл-сервера. Для мсскл советую справку jet40.chm
Сложнее с пониманием самого принципа взаимодействия между "клиентом" и "сервером", сутью и назначением транзакций, пониманием "внутренностей" скл-сервера. Мне в свое время очень понравилась книжка "Мир Интербэйз" Ковязина и Вострикова. Несмотря что это интербэйз, суть механизма транзакций и многое другое внятно, кратко и полно описанный ими, ИМХО, вполне дает понятия о предмете и для других серверов.
-
У файрберда есть одно несомненное преимущество - он бесплатен. Но есть и недостатки, которые могут со временем стать серьезным препятствием при масштабировании или даже развитии проекта. Хотя тут, конечно, найдется немало его приверженцев. А вот в части средств доступа именно из делфи, библиотеке компонент, равной ADO по доступности, удобству и прозрачности я не знаю.
-
> MsGuns © (07.11.08 12:29) [22] > Сложнее с пониманием самого принципа взаимодействия между > "клиентом" и "сервером", сутью и назначением транзакций, >
Что такое двухзвенка и трехзвенка, например, я знаю.
-
Парадокс, кстати, совсем не такая уж "падучая" СУБД, если использовать некоторые приемы. Например, вероятность фатального подения индексов в многопользовательской среде резко снижается, если не использовать в приложениях прямых связок мастер-детал. Вместо них можно юзать специальные "трансферные" таблицы-мастера, к которым линковать основную и детальную таблицу. Мастер-таблицы предварительно копируются из рабочего каталога в приват и там уже открываются и связываются. Кроме того следует избегать "гридного" редактирования, а также правок "бизнес-логики" (то, что находится в *.val например) "на лету". Существует огромное количество вполне работающих систем на парадоксе, которые используются годами практически без вмешательства проектировщика с числом одновременных пользователей, исчисляемым десятками.
-
>Liones © (07.11.08 12:39) [24] >Что такое двухзвенка и трехзвенка, например, я знаю.
Значит Вам будет уже легче :) Трехзвенка - это, ИМХО, слишком и если нет необходимости в реально "тонком" или удаленном клиенте, я бы ее не использовал, т.к. она серьезно сложнее в проектировании, чем "простой" клиент-сервер.
-
> Подскажите пожалуйста, где найти информацию, чтобы хоть > знать что это http://ibase.ru > MsGuns © (07.11.08 12:29) [22]
> Для мсскл советую справку jet40.chm
Фтопку, адназначна! Речь ведь идет о локальной однопользовательской задаче. IB/FB здесь будет идеален тем, что он на локале работает со свистом, требует минимум усилий по установке/обслуживанию, мало весит, прекрасно переносим и вообще приятен во всех отношениях. Ну а мелкософтовский недоскл недосервер не только в данном случае, но и просто по жизни в топку ;) > Вместо них можно юзать специальные "трансферные" таблицы-мастера, к которым линковать основную и детальную таблицу. Мастер-таблицы предварительно копируются из рабочего каталога > в приват и там уже открываются и связываются.
Жжжжють! И это, кстати, еще один весомый аргумент в пользу IB/FB, который отучает программиста от уймы бесполезной работы.
-
Или MS Access+ADO для доступа.для локальной работы хватит с головой..Хотя.. FB "роднее".. и действительно нааааааааааамного удобней и проще в обслуживании, чем Парадокс...
-
...и чем MS Access+ADO ;)
-
>GRAND ©
Очевидно, дело в том, что ты работал в основном с птицей и рабоал мало или не работал вообще с мсскл. О футболе ты много квалифицированнее рассуждаешь, ей богу :)
-
> Очевидно, дело в том, что ты работал в основном с птицей > и рабоал мало или не работал вообще с мсскл.
Да нет, Ганзик, моя квалификация во многом опирается на личный опыт не только в футболе. Дело в том, что когда-то давно я тоже начинал в клиент-серверных технологиях и стоял перед выбором платформы. Пробовал-с я этот ваш MS SQL через ADO - глюкодром ужасный! Программа могла срабатывать совершенно по-разному в одних и тех же фрагментах кода без каких-либо изменений. Только пересев на IB, я почувствовал себя полностью самодостаточным программистом (даже на кривом IBX!) - поведение программы было целиком предсказуемым, поставленные задачи решались на порядок быстрее и вообще, для решения оных я не нуждаюсь больше ни в чем, абсолютно!
> О футболе ты много квалифицированнее рассуждаешь, ей богу > :)
Ну а так, чтоб не по личностям, а по сути - аргументы в пользу MS SQL против птицы применительно к обсуждаемому случаю есть?
-
Я уже неоднократно писал о преимуществах мсскл - если интересно, то найди и почитай
-
> Я уже неоднократно писал о преимуществах мсскл - если интересно, > то найди и почитай
Для локальной задачи?!!!
-
> Сергей М. (07.11.2008 12:20:19) [19]
Вообще то оно даже маловероятное, в эти файлы ничего не пишется.
-
> Liones (07.11.2008 11:45:06) [6]
Элементарно, данный файл восстанавлисается путем простого копирования эталога из архива.
-
> Liones (07.11.2008 11:49:09) [9]
Если не учитывать переход на КС, то это уникальная особенность, почти недоступная для других СУБД. Про упаковку тебе уже сказали. Мне например трудно найти какие либо достоинства у Парадокса.
-
> Liones (07.11.2008 12:24:21) [21]
Рекомендую задуматься над использованием MS SQL 2005 Express гораздо проще в эксплуатации и мощнее. Информации неимоверно много. Хотя Firebird тоже удачный выбор.
-
> MsGuns (07.11.2008 12:52:25) [25]
Лучше вообще ни использовать никакие индексы, кроме ПК и работать только с помощью запросов, да еще и без dbAware компонент для редактирования.
-
> GRAND (07.11.2008 14:55:31) [31]
> Пробовал-с я этот ваш MS SQL через ADO - глюкодром ужасный! Программа могла срабатывать совершенно по-разному в одних и тех же фрагментах кода без каких-либо изменений.
Как ты этого сумел добиться?
Чепуха этот ваш Карузо.
-
> GRAND (07.11.2008 15:32:33) [33]
У меня с 10 серверов крутится для локальных задач и как то не беспокоит, работают в необслуживаемом режиме, к некоторым и не подключиться.
-
> Как ты этого сумел добиться?
Да хз, не помню! Может быть, ADO в то время в D5 кривой был, а может SQL-2000 гнал безбожно, а может, и моей квалификации тогда пока еще не хватало, чтобы все это безобразие укротить. Но смею заметить, что пересел я на IB будучи еще в самой начальной квалификации в области КС - и как рукой все сняло! И понял я тогда, что мне удалось сменить кустарную поделку на действительно и по-настоящему серьезную, солидную вещь, о чем не жалею и по сей день.
Вообще же всем начинающим программистам я бы дал одну очень ценную универсальную рекомендацию, которая, несомненно, поможет им в будущем - а именно: никогда не пытайтесь программировать с использованием тех или иных инструментальных разработок (будь то СУБД, IDE или язык) от Microsoft. Все эти, с позволения сказать, изделия либо косорыло повторяют что-либо придуманное кем-то ранее, либо жутко неудобны, либо вопиюще нестабильны. Генетическая наследственность там просто ужасна: глянешь в ДНК под микроскопом - а там все то же GOTO из нежно любимого Билли Васика.
-
в общем все понятно, придется ночи занять изучением технологии клиент-сервер))
-
> GRAND © (07.11.08 17:04) [41]
По моему, паранойя...;-)
-
>Виталий Панасенко (10.11.08 12:09) [43] >По моему, паранойя...;-)
Ленин даже написал книженцию об этом. "Болезнь левизны в коммунизме" или как-то так называется. В ней речь о тех, кто по незнанию или непониманию хаит в учении все, что им не нравится :)
-
> В ней речь о тех, кто по незнанию или непониманию хаит в > учении все, что им не нравится :)
А я наверное дифирмбы должен петь тому, что мне не нравится? По-моему, все вполне естественно и логично: не нравится - вот и хаю!
-
И вообще, господа, ваши психолого-исторические экзерсисы я расцениваю как полное отсутствие аргументов по сути.
-
> GRAND (10.11.2008 13:51:45) [45]
> не нравится - вот и хаю!
не нравится - вот и в харю!
-
кривой не мсскл. кривой ado в d7 и ниже. выше не знаю, не пробовал.
-
>GRAND © (10.11.08 13:54) [46] >И вообще, господа, ваши психолого-исторические экзерсисы я расцениваю как полное отсутствие аргументов по сути.
Аргументов в 40 тебе мало. Статистика по использованию скл-серверов тоже не для тебя, искать кучу аргументов на этом форуме, sql.ru или Королевстве - не царское дело.. Трудно убедить того, кто не хочет слышать :)
-
> Поросенок Винни-Пух © (10.11.08 14:24) [48]
Не АДО кривой, а обертка в Дельфи, она действительно очень кривая, ее постоянно пытаются исправить начиная с Д5 - меня это последовательно вынудило перейти на 2006, но там тоже еще не все в порядке.
А касательно Парадокса - АДО с ним (и с другими базами) сам не работает, за это отвечают провайдеры. Для Парадокса это провайдер до JET или ODBC for OLE DB, последний это лишний посредник, поскольку тоже не работает с Парадокс, а обращается за этим к JET, который затем обращается к БДЕ и в отличии от dBase не возможно работать с базой. То есть получается совсем плохо ODBC + JET + БДЕ (полный) и на каждом шаге получаются искажения. С Парадоксом надо работать исключительно через БДЕ
-
Ганз, я все же посмею еще раз тебе напомнить о том, что в обсуждаемой теме речь идет не о промышленной эксплуатации и вообще не о промышленных и даже не о мелкоофисных объемах - локальная задача для одного компьютера, который может быть вообще изолированным и не находиться ни в какой сетке. Причем тут твоя статистика или аргументы из [40]? Ты хочешь, чтобы девушка вместо того, чтобы взять легкоустанавливаемый бесплатный йаффилъ, купила мсскл и присела на пару месяцев за него? Ну елы-палы, давай же советовать людям что-то в конце концов реальное и подъемное, а не растопыривать тут пальцы о 10 крутящихся склях для локальных задач! Это у тебя оно работает, это ты молодец. А я советую человеку по-простому, по-фуфлыжному, как привык, без высоких и тонких майкрософтовских материй...
-
> GRAND (10.11.2008 15:17:51) [51]
Да она погибнет, с этой неподдерживаемой системой. А MS SQL жить будет, к тому же он точно также бесплатен.
-
Я не понимаю одного - если человек собирается проектировать КС (а файрберд это есть полновесный КС), какая разница сколько пользователей будет у приложения. Вот ты мне объясни это, пожалуйста. И не лучше ли СРАЗУ учиться писать, а главное МЫСЛИТЬ правильно ?
Что же касается компонентов ADO, то Николай тут уже столько по этому поводу рассыпАл.. Главное, не использовать его по файл-серверной технологии. Вроде того, как Кайф тут недавно возмущался тем, что при редактировании "комбинированного" датасета (т.е. датасета, полученного запросом из нескольких таблиц БД) АДО пишет в таблицы-источники что попало. Лучше ба АДО как ИБ, не давал редактировать такие датасеты вообще. Так что ж мешает программисту вместо "глюкавой" локальной гридной корректировки разделить просмотр и правку по разным "корзинам" и спокойно наслаждаться правильностью и надежностью ? И вообще, все эти "глюкавости" идут прежде всего от непонимания разработчиком тонкостей (а иногда и основ) работы как скл-серверов, так и "оберток". Казалось бы, не нравится, напиши свои, так нет - хаит, но пытается тыркаться дальше. Пока не "пересядет" на другой сервер, для которого написаны более удобные и интуитивно понятные библиотеки. Вот это, ИМХО, и называется дилетанство.
-
> Я не понимаю одного - если человек собирается проектировать > КС (а файрберд это есть полновесный КС), какая разница сколько > пользователей будет у приложения. Вот ты мне объясни это, > пожалуйста.
Объясняю: никакой разницы. А если разницы нет, то зачем платить больше? Зачем городить огород с MS SQL? Че-нить полегче поставить и освоить плохо штоль?
> И не лучше ли СРАЗУ учиться писать, а главное МЫСЛИТЬ правильно > ?
Это что, мелкософтовский SQL приучает писать и мыслить ПРАВИЛЬНО?!!! ЛОЛ! :))))
> что при редактировании "комбинированного" датасета (т.е. > датасета, полученного запросом из нескольких таблиц БД) > АДО пишет в таблицы-источники что попало. Лучше ба АДО как > ИБ, не давал редактировать такие датасеты вообще.
В ИБ можно. В FIBPlus все по корзинам как раз и разделено. Да и в IBX при желании тоже изголиться можно.
-
> Да она погибнет, с этой неподдерживаемой системой.
Еще один ЛОЛ! :) Толя, да в 90% случаев человек ставит себе IB/FB/YA и... надолго забывает о нем, концентрируясь только на своей непосредственной работе, а не отслеживании каких-то глюков то в АДО, то в MS SQL-недосервере.
-
> GRAND (10.11.2008 16:04:55) [55]
Насмотрелся я этих наслаждающих. Кроме того ты то советуешь ставить давно умершую систему.
-
Ну пусть йаффелъ умер, но птица-то жива!
-
> GRAND (10.11.2008 17:09:57) [57]
Ну пусть идет вслед за дятлом.
-
> Ну пусть идет вслед за дятлом.
Не дождешься! :P Вот МыСы СыКыЛы пущай лучш загнется.
-
> GRAND (10.11.2008 20:14:59) [59]
Ну вот опять облом. Если не шутить, то SQL сервера есть разного назначения и желательно использовать их соответсвенно, а то видел Production где в качестве сервера My SQL v.4. а то и ниже. Парадокс можно заменять чем угодно, проблемы возникнут только потом, когда система вместо предполагаемого вдруг начинает серьезно развиваться и вот тогда неверный выбор начинает бить по рукам. Для FB подходящим я считаю полупромышленное применение, встраивание в установки. В остальных случаях, включая и персональное использование, что ни будь более промышленное, например бесплатный Оракл или бесплатный MS SQL
-
Если fb, то только в пределах прямой видимости. Дома или у себя на работе. Коробочные системы "на вынос" на нем уже зарекся делать.
-
> Парадокс можно заменять чем угодно, проблемы возникнут только > потом, когда система вместо предполагаемого вдруг начинает > серьезно развиваться и вот тогда неверный выбор начинает > бить по рукам.
Ну, у FB запас прочности на развитие весьма и весьма солиден! Не надо недооценивать...
-
> > > [56] Anatoly Podgoretsky © (10.11.08 17:03) > > GRAND (10.11.2008 16:04:55) [55] > > Насмотрелся я этих наслаждающих. > Кроме того ты то советуешь ставить давно умершую систему.
FB-то умершая? Хоронить рановато, мне кажется. Этот продукт до сих пор активно развивается. Пусть небольшой группой людей, но развивается в правильном направлении. Как замена Парадоксу - это хороший выбор. Перегон данных из Парадокса в FD осуществляется за 5 минут с помощью Data Pump. Лично для себя отметил следующие его качества: - легкость установки. Сервер ставится за минуту и обычно не требует после этого никакой настройки. - все возможности сервера умудрились засунуть в одну dll-ку (fb embedded). Удобно. Узеры годами могут работать с прогой, и представления не имеют, что на них трудится целая СУБД. - надежность. За все время работы у меня не возникло ни одной претензии к данному качеству FB (в основном претензии были к компонентам iBX, пока их не обновил). - производительность. Не смею сравнивать с SQL-монстрами, но это качество в FB весьма радует. - высокий уровень DDL, DML, PQSL и т.д., соблюдение стандартов SQL. - самое главное - уверенность, что если с базой или с сервером произойдет что-нибудь "необычное", можно расчитывать на помощь в ibase.ru и SQL.ru :)
-
> Коробочные системы "на вынос" на нем уже зарекся делать.
с чем это связано?
-
с чем это связано?
Это связано с проблемами "второго порядка". То есть к траблам самого фб не имеющие отношения. В "прочем" я создавал пару веток посвященных этому. Последнее, но что я напоролся: ставим клиенту продукт (фб203), уходим. Через некоторое время у него появляется софт третьей стороны (фб 1.5). Так как это зачастую ООО или ИЧП или ПБОЮЛ, то из it персонала там тетя или в лучшем случае приходящий раз в месяц студент-1с ник на договоре.
И начинается.....
-
> Loginov Dmitry (10.11.2008 22:17:03) [63]
Не FB, а YA - именно его он и советовал ставить.
-
> Через некоторое время у него появляется софт третьей стороны > (фб 1.5). > Так как это зачастую ООО или ИЧП или ПБОЮЛ, то из it персонала > там тетя или в лучшем случае приходящий раз в месяц студент- > 1с ник на договоре.
Зато это говорит о широкой популярности FB ;)
Для подобных "несерьезных" контор я бы выбрал fb embedded.
Кстати с версии fb 2.1 можно изменять имя службы с DefaultInstance. Для этого в составе есть утилита instsvc.exe. Достаточно один раз установить fb 2.1, задать службе fb имя по душе, прописать номер порта, отличный от 3050, и все подключения клиента делать с указанием порта (например 127.0.0.1/3052:C:\Base.fdb). Для верности скопировать в каталог с программой клиентскую либу (в последнее время особенно много исправлений делается в клиентской библиотеке). После этого пускай хоть обставяться этими файрбёрдами, ничего не сломается :)
-
> Не FB, а YA - именно его он и советовал ставить.
Я не настаивал конкретно на YA! И не говорил, что это не может быть FB, а обязательно должен быть YA... Хотя, на дятле 835-го билда по сей день одна конторка юзает мою прогу без малейших проблем.
|