Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];

Вниз

Посоветуйте СУБД для локальной базы + компоненты доступа   Найти похожие ветки 

 
Sergey13 ©   (2005-11-08 15:59) [40]

2[38] ANB ©   (08.11.05 15:36)
Тогда ты хочешь автоматизировать хаос. В результате - автоматизированный хаос.
ИМХО.


 
Johnmen ©   (2005-11-08 16:07) [41]

>Игорь Шевченко ©   (08.11.05 15:45) [39]

Они лежат в midas.dll.
Но и без неё можно обойтись, если D>=6. В этом случае достаточно uses MidasLib, там они тоже реализованы, т.е. сразу будут "встроены" в ехешник.


 
Sandman29 ©   (2005-11-08 16:19) [42]

Johnmen ©   (08.11.05 16:07) [41]

Дополнение. Если используются bpl, то MidasLib не работает.
И еще рекомендуется использовать MidasMemPatch, для устранения глюков Midas.


 
ANB ©   (2005-11-08 16:19) [43]


> Sergey13 ©   (08.11.05 15:59) [40]

В отделе делфистов ребята рисуют все централизвано в ервине. А отдел мэйджик резонно говорит - что так как никаой пользы от сего они не видят, кроме проблем (ервин штука неустойчивая), то на фиг он им нужен. Оракл дизайнер я только для 9 видел, а у нас пока 8 базовая. А если извлечь пользу в виде автоинсталляшки, то народ задумается. В принципе, я уже опросил, сказали - что если напишу, то юзать будут. Моя польза - будет более удобная инсталляшка, а то я уже задрался тестовый стенд разворачивать руками. А нормальную инсталляшку можно на автомат поставить.


 
Игорь Шевченко ©   (2005-11-08 16:21) [44]

Johnmen ©   (08.11.05 16:07) [41]

"Frequently Asked Questions
DBCLIENT.DLL

Question:
What is the role of DBClient.DLL?

Answer:
DBCLIENT.DLL contains the low-level implementation of
TClientDataSet.  It manages all of the data and implements
functionality like filters, sorting, etc.  The relationship
between TClientDataSet and DBCLIENT.DLL is very similar to the
one between TTable and the BDE.  The functionality is surfaced
through two COM interfaces (DSBase & DSCursor) and requires OLE
registration.  If DBCLIENT.DLL is placed in any directory on the
path or in the EXE directory on the client machine, it will
automatically be registered by the VCL code in TClientDataSet.  
Otherwise it must be registered using REGSVR32.EXE or TREGSVR.EXE."
http://wall.riscom.net/books/delphi/del_faqs/601.html

Начиная с какой-то версии Delphi (и midas) интерфейс TClientDataSet действительно пользуется midas.dll.

Так что правы оба, до тех пор, пока не указана версия Delphi.


 
ANB ©   (2005-11-08 16:28) [45]


> пока не указана версия Delphi.

7


 
Sergey13 ©   (2005-11-08 16:29) [46]

2[43] ANB ©   (08.11.05 16:19)
У нас тоже бардака хватает. Но есть эталонная схема. Все разработчики работают с ней и под нее. Потом переносят скриптами (создаными автоматически) на тестировочные схемы и там все гоняется. При "ошибке" запускается под "эталоном" и если ошибка исчезла, смотрим схему. Считается, что в "эталоне" 100% рабочая структура. Т.е. править ее по "рабочей" нельзя.


 
ANB ©   (2005-11-08 16:54) [47]


> Sergey13 ©   (08.11.05 16:29) [46]

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


 
paul_k ©   (2005-11-09 12:05) [48]

ANB ©   (08.11.05 15:36) [38]
Хуже. Они его даже не генерят с эталона тоадом, а ручками пишут

От и я про то. проще написать тулзу для генерения скриптов. И на клиенте меньше гимора будет. А в базе разработки держать структуру типа название сущности - время последнего изменения - аффтор. И при помоши этих данных патчи собирать, к примеру.


 
Sergey13 ©   (2005-11-09 12:11) [49]

2[47] ANB ©   (08.11.05 16:54)
В таких условиях, ИМХО, вообще невозможно с уверенностью сказать - правильная структура или нет. Сравнить то не с чем.


 
Ермак ©   (2005-11-09 12:22) [50]

Я использовал MySQL. Сам урезал ее и делал свой дистрибутив, который все устанавливает, запускает и создает источник ODBC. Имхо, лучший вариант. Пробовал Access - проклял все... В первую очередь из-за того, что половину запросов пришлось переписывать. У них SQL совершенно не по стандарту сделан... Но, надо сказать, что работает он в локальном варианте быстрее, нежели MySQL. Причина, видимо, в локальном доступе и в том, что MySQL под Виндой пашет хуже, чем под Линухом...
Тем не менее поставляем свой продукт с MySQL - все отлично...
Если заинтересует, могу помочь. Пишите на ermakov@metasystems.ru


 
ANB ©   (2005-11-09 12:53) [51]


> paul_k ©   (09.11.05 12:05) [48]

В базе в конторе я собираюсь держать обычную структуру оракловой БД (схемы) + инфу, необходимую для конвертации, например - таблицы переезжают или поля. На основании этой инфы + структуры клиентской БД можно сгенерить скрипт обновления базы клиента. Хранить инфу о структуре БД каждого клиента во первых - нереально, т.к. клиентов много, плюс многие сами еще по базе лазят и свое туда докручивают.


> Sergey13 ©   (09.11.05 12:11) [49]

Полгода уже начальству об этом долдоню. Последний раз подсунули мне проверять инсталляшку новой версии моим автоматом. Попросил эталон - грят нету. Тогда пришлось поднять предыдущую версию, снять с нее эталон, поставить с нуля новую, сравнить структуру, разницу проверить с программистом. Нашли 2 ошибки. Поправили, утрясли - ВРОДЕ то, что они хотели. Качнул эталон. Стал проверять обновления. Еще 7 ошибок нашел, так как скрипты обновления другой программист писал и перепутал немного. Плюс не все обновляется - например Null и Not Null - не всегда, дефолтовые значения - вообще только в одном месте.


> Ермак ©   (09.11.05 12:22) [50]

У вас такая же задача была ?


 
ANB ©   (2005-11-09 15:59) [52]

Почесали репу по поводу таскания с собой дампа и подъема его на сервере клиента. Пришли к выводу, что сие неустойчиво - дамп может не подняться по куче разных причин. Самая банальная - дамп 9, оракла 8. Или тэйблспейса не хватит. Отслеживать эти ошибки - отдельная приличная задача. И не все можно исправить.


 
paul_k ©   (2005-11-09 16:13) [53]

ANB ©   (09.11.05 12:53) [51]
В базе в конторе я собираюсь держать обычную структуру оракловой БД (схемы) + инфу,

и я про тоже

> Хранить инфу о структуре БД каждого клиента

а нафиха? Неужели каждому клиенту поставляется уникальный набор процедур/таблиц?
или все-таки нечто типовое?
если под каждого клиента своя база - то нечего мучить кошек и надо преедавать дамп (а точнее засылать чела чтоб проводил инсталяцию и настройку)
Если нечто типовое - то его всегда формализовать можно. следовательно все описания в сервере. Установочный скрипт (или патч) генерится в конторе и засылается клиенту.


 
paul_k ©   (2005-11-09 16:14) [54]

paul_k ©   (09.11.05 16:13) [53]
кстати а в скольки базах разработка ведется? больше чем в одной? если так то почему?


 
Sergey13 ©   (2005-11-09 16:14) [55]

2[52] ANB ©   (09.11.05 15:59)
ИМХО, ваша главная проблема - у вас нет той эталонной схемы, с которой можно снять дамп. Если была, то и дамп собственно не нужен. Жабой или дивелопером сливаешь в скрипт схему и накатываешь его у клиента под каким угодно узером на каком угодно таблспейсе. И анализируешь потом не содержание таблиц дампа, а саму структуру - она же уже есть - вот и сравнивай ее с рабочей.


 
ANB ©   (2005-11-09 16:19) [56]


> paul_k ©   (09.11.05 16:14) [54]

Ну, у клиентов штук 20 вариантов поставки. Плюс куча разных версий с отличающейся структурой БД.

> paul_k ©   (09.11.05 16:14) [54]

У каждого программиста свой сервер. У меня 3 компа и на каждом от 2-х до 10 инстансов. Но для своей софтины у меня одна эталонная и одна чистая для другого отдела - чтобы не путаться. Я их сам синхронизую.

> Sergey13 ©   (09.11.05 16:14) [55]

В обычный дамп не запихаешь правила конвертации


 
Sergey13 ©   (2005-11-09 16:23) [57]

2[56] ANB ©   (09.11.05 16:19)
>В обычный дамп не запихаешь правила конвертации
Ну ты же их автоматом своей софтиной формируешь, как я понял. По некоей БД, которая у тебя есть. Так? Тогда почему эта софтина не могет отработать у клиента? Или я не понял чего?


 
ANB ©   (2005-11-09 16:39) [58]


> Sergey13 ©   (09.11.05 16:23) [57]

Фух. У нас версий уже целая куча. Причем только в последних двух в базу стал писаться ее номер. И то некорректно.
Ситуация : на какой то средней версии "поменялась концепция" и из одной таблички сделали 2. А 2 другие слили в одну. Т.е. мало создать новые таблицы и дропнуть старые, надо еще и данные перелить по определенным правилам. И делать это надо только, если еще не было сделано. Вот эти правила нужно запихнуть в описание структуры БД (как - моя проблема). Тогда инсталляшка читая эталонную структуру в локальной БД и анализируя фактическую структуру БД оракла у клиента сможет сгенерить правильные скрипты, чтобы данные не пропали.
ЗЫ. Опять двадцать пять - "зачем это нужно". Ну куча контор пользуется ервином для этих целей. Я хочу сделать нечто подобное, но попроще и более заточенное для нас.


 
Sergey13 ©   (2005-11-09 16:48) [59]

2[58] ANB ©   (09.11.05 16:39)
Т.е. в том, что ты хочешь принести в локальной БД уже написано как делить/сливать и т.п.? А как эти правила задаются? Вручную или автоматом твоим?
>Тогда инсталляшка читая эталонную структуру в локальной БД
Ты меня совсем запутал. 8-) То у тебя нет этого эталона, то есть.
Инсталяшка структуру читает или читает инфу из таблиц этой структуры? Если таки структуру, то какая разница где читать и генерить - у тебя или у клиента?


 
ANB ©   (2005-11-09 16:55) [60]


> Sergey13 ©   (09.11.05 16:48) [59]

Отвечаю по пунктам :
1. Эталона у нас нет
2. Хочу, чтобы он был
3. Для того, чтобы его сделали, хочу написать совю софтину типа ервина, чтобы в ее таблицах можно было структуру БД описывать.
4. Для пользы хочу делать копию данных этой софтины в локальную базу и включать эту локальную базу в инсталляшке.
5. Инсталляшка будет гулять по локальным таблицам, в которых описана структура БД и сравнивать со структурой реальной БД, которая стоит у клиента.


 
Sergey13 ©   (2005-11-09 17:00) [61]

2 [60] ANB ©   (09.11.05 16:55)
Э-э-э-э. Ну... эта...
Че-то у меня совсем помутнение уже. Я пожалуй прекращу (пока) советовать.
8-)


 
paul_k ©   (2005-11-09 17:09) [62]

ANB ©   (09.11.05 16:19) [56]
Ну, у клиентов штук 20 вариантов поставки. Плюс куча разных версий с отличающейся структурой БД.

Какой до боли знакомый бардак.
решалось следующим образом
1. разработка в локальных базах запрещена категориццки.
2. вся разработка структуры базы через собственную тулзу, которая автоматом пишет версию дату изменения и так далее.
3. Скрипты на обновление-установку генерились автоматом.
4. Клиентов принудительно проапдейтили до текущей верси (ох и наездились)
результат - новый патч базы вормируется в несколько кликов мышью.


 
ANB ©   (2005-11-09 17:32) [63]


> paul_k ©   (09.11.05 17:09) [62]

Ну вот и нам нужно к этому переходить.
Только
> 4. Клиентов принудительно проапдейтили до текущей верси
> (ох и наездились)

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


 
paul_k ©   (2005-11-09 17:35) [64]

ANB ©   (09.11.05 17:32) [63]
остается вариант дамп запросить:)
У нас было проще - кто техподдержку платит исправно тот новые версии получает А кто нет - тот ещё раз софт покупает. Ила платит нехилую почасовку за выезд специалиста для приведения в соответствие с новой версией.


 
ANB ©   (2005-11-09 17:50) [65]


> paul_k ©   (09.11.05 17:35) [64]

У нас еще боковушки есть. Их пока в основной стержень не подрубят, обновлять нельзя.


 
AlexWlad ©   (2005-11-09 19:24) [66]


> ANB ©   (08.11.05 09:55)  
>
> 1. Объем маленький (будет хранится структура реальной БД)
> 4. Желательна работа с индексами, чтобы не тормозила

Так все-таки объем маленький или чтобы не тормозила???
Или это у меня ошибочное представление, что такое "маленький" объем???


 
КаПиБаРа ©   (2005-11-10 05:54) [67]

Sergey13 ©   (09.11.05 16:48) [59]
Ты меня совсем запутал. 8-) То у тебя нет этого эталона, то есть.
Че-то у меня совсем помутнение уже.

Теперь понятно почему у них такой бардак :)


 
Некто ©   (2005-11-10 08:30) [68]

firebird embedded


 
pasha_golub ©   (2005-11-10 09:03) [69]

SQLite 3
http://www.sqlite.org/

Под нее я даже класс-обертку видел на torry.net, по-моему.


 
ANB ©   (2005-11-10 09:21) [70]


> AlexWlad ©   (09.11.05 19:24) [66]

Ну сколько строк понадобиться, чтобы описать БД не очень большой сложности (около 200 таблиц) ? Просто без индексов постоянно перебором гонять - лишний геморрой. Хотя есть мысля выгружать сразу в отсортированном виде. Тогда и VirtualTable хватит. Можно выгрузить в файлы и при выполнении инсталляшки - загрузить обратно.

> pasha_golub ©   (10.11.05 09:03) [69]
- она халявая ?


 
ANB ©   (2005-11-10 09:23) [71]


> КаПиБаРа ©   (10.11.05 05:54) [67]

Ну, бардак потому, что система писалась уже давно и наспех, а теперь все руки не доходят переписать. Это еще все мелочи. Как например то, что все пользователи работают под одним логином с правами DBA ?


 
pasha_golub ©   (2005-11-10 09:29) [72]


> ANB ©   (10.11.05 09:21) [70]


> - она халявая ?
>


SQLite - бесплатная. Но автор предлагает саппорт и за деньги. Даже не просто саппорт, а иногда пишет некоторые решения...

Модуль с классами для Делфи тоже бесплатный, даже с исходниками. Более того существует несколько реализаций.


 
ANB ©   (2005-11-10 09:31) [73]


> pasha_golub ©   (10.11.05 09:29) [72]

У меня доступа на их сайт нету. Не мог бы ты, плз, запостить, что нужно ставить на комп, чтобы он работал и каков формат хранения данных (один файл на всю БД, файл-таблица, есть ли описание формата)


 
pasha_golub ©   (2005-11-10 09:41) [74]

Хм... Странно. У меня открывается без проблем...

Движок SQLite - это dll размером 250Кило. Если задачи не особо громоздкие, то можно прямыми вызовами нужных методов и рулить. Ежели влом, то лучше сходить на Торрик и взять себе модуль с классами. Описание формата хранения, по-моему, есть в документации.

Движок: http://www.sqlite.org/sqlitedll-3_2_7.zip
Консоль для администрирования: http://www.sqlite.org/sqlite-3_2_7.zip
Исходники: http://www.sqlite.org/sqlite-source-3_2_7.zip
Поддержка за денюжку: http://www.hwaci.com/sw/sqlite/prosupport.html
ДОки: http://www.sqlite.org/docs.html

SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. Features include:

   * Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.
   * Zero-configuration - no setup or administration needed.
   * Implements most of SQL92.
   * A complete database is stored in a single disk file.
   * Database files can be freely shared between machines with different byte orders.
   * Supports databases up to 2 terabytes (241 bytes) in size.
   * Sizes of strings and BLOBs limited only by available memory.
   * Small code footprint: less than 250KiB fully configured or less than 150KiB with optional features omitted.
   * Faster than popular client/server database engines for most common operations.
   * Simple, easy to use API.
   * TCL bindings included. Bindings for many other languages available separately.
   * Well-commented source code with over 95% test coverage.
   * Self-contained: no external dependencies.
   * Sources are in the public domain. Use for any purpose.

The SQLite distribution comes with a standalone command-line access program (sqlite) that can be used to administer an SQLite database and which serves as an example of how to use the SQLite library.


 
paul_k ©   (2005-11-10 10:13) [75]

ANB ©   (09.11.05 17:50) [65]
бардааак.....  Но как он знаком....
может того, усилия приложить к изничтожению бардака а не к изобретению лисапеда о квадратных колесах для транспортировки бардака в светлое будующее.
Придти к примеру и всех обрадовать подписанным от начальства приказом а перенесении разработки в единую базу. И прописанными сагкциями за неисполнение оной. Типа нашли у тя на компуке инстанс сервера - пожалте в кассу оплатить.   и так далее..  А то если на заплаты злепить новые заплаты то все обязательно рухнет. и чем позже тем громче


 
КаПиБаРа ©   (2005-11-10 10:21) [76]

paul_k ©   (10.11.05 10:13) [75]
http://delphimaster.net/view/14-1131511621/


 
paul_k ©   (2005-11-10 10:30) [77]

КаПиБаРа ©   (10.11.05 10:21) [76]
не совсем корректное сравнение.
Каменюка и так на месте или едет. со скрипом но.
И телега с квадратными колесами изобретаемая в данный момент не спасет, то есть не шибко ускорит доставку оной каменюки, а вот развалить каменюку на кучу ненужного щебня - ой как поможет


 
ANB ©   (2005-11-10 10:32) [78]


> pasha_golub ©   (10.11.05 09:41) [74]

У тебя и должен открываться - это у нас проблема : инет с ограничениями.


 
ANB ©   (2005-11-10 10:37) [79]


> paul_k ©   (10.11.05 10:30) [77]

Это называется "исторически сложилось". У нас и разработку ведут на системе "Magic" - жуткая гадость, а слезть не могут, т.к. переписывать некогда. Куски, которые магик выполнять не умеет, пишут на делфи и VS.
Более того, разработчики переехали на ораклу 9, а тестировать на 8, т.к. она стоит у всех клиентов. Я у них даже дамп базы взять не могу. К начальству ходили уже - пока без толку, т.к. запарка, новую версию уже на 8 месяцев просрочили и когда сделают - неизвестно. Даже пока мою тулзу временно зарубили, так что я пока продумываю, как ее сделать по человечески, а писать буду позже.


 
КаПиБаРа ©   (2005-11-10 10:41) [80]

ANB ©   (10.11.05 10:37) [79]
Ужас. Как я рад, что у вас не работаю :)



Страницы: 1 2 3 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.7 MB
Время: 0.04 c
14-1131914761
Kerk
2005-11-13 23:46
2005.12.04
Вы все еще используете ACDSee? Тогда мы идем к Вам!


3-1129634534
СергейГР
2005-10-18 15:22
2005.12.04
_небольшая_ база данных


14-1132061272
vecna
2005-11-15 16:27
2005.12.04
Internal debugger


6-1124310306
nes
2005-08-18 00:25
2005.12.04
TClient/Server-socket, dynamic ip


3-1129797724
КиТаЯц
2005-10-20 12:42
2005.12.04
IB Expert SQL Executive (как правильно написать скрипт?)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский