C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
MSDE 2000, Миграция с Access
Treumer
Отправлено: 14.02.2005, 10:37


Станционный диспетчер

Группа: Участник
Сообщений: 92



Вот, собираюсь мигрировать, т.к. нужна поддержка по крайней мере 10 конкурирующих пользователей.
Вроде бы MSDE столько тянет ? Кто нибудь пробовал ?
olegenty
Отправлено: 14.02.2005, 10:55


Ветеран

Группа: Модератор
Сообщений: 2412



тянет. (только если они не будут по записи в секунду вставлять. иначе не тянет.)
Treumer
Отправлено: 14.02.2005, 11:18


Станционный диспетчер

Группа: Участник
Сообщений: 92



QUOTE (olegenty @ 14/02/2005, 11:57)
тянет. (только если они не будут по записи в секунду вставлять. иначе не тянет.)

Нет, такой нагрузки и близко не предвидится!
Просто я натыкался на разное количество поддерживаемых коннектов — от 5 до 20...

Ну, значит — вперед! smile.gif

Я уже постил подобный вопрос в сентябре еще — но вот только-только дошли руки до миграции..
Странным образом не нашел свой топик поиском по ключевому слову MSDE — хотя оно там в заголовке стоит... ohmy.gif

Я так понимаю — миграция таки возможна и — если повезет — безболезненна... biggrin.gif
olegenty
Отправлено: 14.02.2005, 16:21


Ветеран

Группа: Модератор
Сообщений: 2412



да и 1000 коннектов потянет, если
1. будешь грамотно администрировать.
2. будешь грамотно разрабатывать софтину.

у нас MSSQL тянет сейчас более 600 пользователей.
Valdemar
Отправлено: 15.02.2005, 09:18


Мастер участка

Группа: Участник
Сообщений: 433



olegenty, так вопрос о MSDE, а не о MS SQL Server.
Если я не ошибаюсь, то у MSDE ограничение на количество одновременных конектов 5.
Treumer
Отправлено: 15.02.2005, 10:50


Станционный диспетчер

Группа: Участник
Сообщений: 92



QUOTE (Valdemar @ 15/02/2005, 10:20)
olegenty, так вопрос о MSDE, а не о MS SQL Server.
Если я не ошибаюсь, то у MSDE ограничение на количество одновременных конектов 5.

Там как-то хитро написано, типа "пять одновременных операций" или что-то в этом роде, что не означает, что не может быть 30 человек подконнекчено, которые ничего не делают.

Правильно разрабатывать приложение я не могу, т.к. оно уже разработано и — боюсь — не очень то и правильно.
В общем то и Аксесса хватило бы, если бы он ействительно держал 20-30 соединений, а он — на сколько я знаб — нифига не держит, хотя это и декларируется Микрософтом.

Но нагрузка на базу — в реальности — будет настолько мала, что единственное что важно — чтобы эти тридцать юзеров одновременно запустивших программку — и ничего не делающие с базой — не рушили бы базу просто слишком большим кол-ом коннектов...

Как уж ээ будут администрить — понятия не имею...
Сам заказчик и будет администрить...
olegenty
Отправлено: 15.02.2005, 10:59


Ветеран

Группа: Модератор
Сообщений: 2412



TADOConnection::KeepConnection = false, тогда, при отсутствии действий, ADO будет обрывать коннект, и восстанавливать его только при попытке действия.

вряд ли 5 одновременных операций, скорее 5 devices. но device != connect
Treumer
Отправлено: 15.02.2005, 12:33


Станционный диспетчер

Группа: Участник
Сообщений: 92



QUOTE (olegenty @ 15/02/2005, 12:01)
TADOConnection::KeepConnection = false, тогда, при отсутствии действий, ADO будет обрывать коннект, и восстанавливать его только при попытке действия.

вряд ли 5 одновременных операций, скорее 5 devices. но device != connect

Тут http://www.aspfaq.com/show.asp?id=2343
вот что написано:
QUOTE
performance throttling occurs when there are more than five (5) concurrent workload batches in progress (this does *not* mean 5 concurrent *users* — with a properly build application, you can certainly support more. For more detailed information about the query governor, see this MSDN topic);


А KeepConnection — надо будет использовать..
Что-то миграция начинает сильно затормаживаться...

Первой серьезной проблемой стало то, что ADO компоненты не захотели выполнять на сервере SQL запрос, который запущенный на нем впрямую работает.

Я решил проапгрейдить MDAC. Поставил MDAC 2.8.
Прога начала выбрасывать exception на event от TDBCheckBox.
Я почесал репу и установил MDAC 2.8 SDK.
Сделал Rebuild.
Не помогло... sad.gif

Чешу репу дальше..
Кажется СДК как-то надо иначе в Борланд интегрировать ?!
olegenty
Отправлено: 15.02.2005, 14:29


Ветеран

Группа: Модератор
Сообщений: 2412



на чём пишешь? какой патч установлен? для BCB6 надо Update4, а для BCB5 — целых несколько.
Treumer
Отправлено: 15.02.2005, 16:54


Станционный диспетчер

Группа: Участник
Сообщений: 92



QUOTE (olegenty @ 15/02/2005, 15:31)
на чём пишешь? какой патч установлен? для BCB6 надо Update4, а для BCB5 — целых несколько.

Да пишу на BCB5 Pro.
Установил на нем все, что смог скачать с Борландовского сайта...
Т.е. BCB5ProUpdate1.exe и BCB5ADOUpgrade1.exe.

Я тут уже начал дальше копать — т.е. откатывать MDAC 2.8 на 2.6, т.к.
мне показалось, что BCB5ADOUpgrade только для версии 2.6...

Стало, однако, хуже...

Н-да...
Treumer
Отправлено: 15.02.2005, 19:59


Станционный диспетчер

Группа: Участник
Сообщений: 92



Rollback на 2.6 не получился.. Все поломалось..

Вроде удалось таки обратно к 2.8 вернуться.

Приложение запускается, но постоянно возникают какие-то странные
exception-ы.
Видимо абсолютно необходим ADO update, только вот есть ли он на BCB5 для версии 2.8 ?! ohmy.gif
olegenty
Отправлено: 16.02.2005, 07:52


Ветеран

Группа: Модератор
Сообщений: 2412



нет, тот, что у тебя стоит — единственный имеющийся. хочешь меньше ошибок при работе с ADO? используй клиентские наборы. TClientDataSet, TMemTableEh, TkbmMemoryTable или другой аналогичный. я пользуюсь вторым из них и проблем не знаю.
Treumer
Отправлено: 16.02.2005, 10:21


Станционный диспетчер

Группа: Участник
Сообщений: 92



QUOTE (olegenty @ 16/02/2005, 08:54)
нет, тот, что у тебя стоит — единственный имеющийся. хочешь меньше ошибок при работе с ADO? используй клиентские наборы. TClientDataSet, TMemTableEh, TkbmMemoryTable или другой аналогичный. я пользуюсь вторым из них и проблем не знаю.

Так что же — это неизбежное зло ?!
Даже если перейти, к примеру, на BCB6 — все равно будут валиться все эти исключения ?!
Treumer
Отправлено: 16.02.2005, 14:46


Станционный диспетчер

Группа: Участник
Сообщений: 92



А на счет использования TMemTableEh возникает вопрос — можно ли им так просто подменить TADODataSet ?!
К сожалению описания TMemTableEh я не нашел..
Такой же вопрос о TClientDataSet — можно ли его так просто подставить вместо
TADODataSet ?!

Отредактировано Treumer — 16/02/2005, 16:01
olegenty
Отправлено: 16.02.2005, 16:58


Ветеран

Группа: Модератор
Сообщений: 2412



работаю на BCB6+Update4
в БД хожу так:
TADOConnection->TADODataDriverEh->TMemTableEh

TADODataDriver — компонент для заливки данных в TMemTableEh и отправки изменений на сервер. содержит InsertCommand, UpdateCommand, SelectCommand, GetRecCommand, которфе в фоне суть TADOQuery, либо TADOStoredProc.

заполняешь эти свойства реальными инструкциями/параметрами, и в ус не дуешь.
Treumer
Отправлено: 16.02.2005, 18:30


Станционный диспетчер

Группа: Участник
Сообщений: 92



QUOTE (olegenty @ 16/02/2005, 16:58)
работаю на BCB6+Update4
в БД хожу так:
TADOConnection->TADODataDriverEh->TMemTableEh

TADODataDriver — компонент для заливки данных в TMemTableEh и отправки изменений на сервер. содержит InsertCommand, UpdateCommand, SelectCommand, GetRecCommand, которфе в фоне суть TADOQuery, либо TADOStoredProc.

заполняешь эти свойства реальными инструкциями/параметрами, и в ус не дуешь.

Я так понимаю, придется тогда много чего перелопачивать..
К примеру у меня есть отчеты в QuickReport-e, которые данные из ADODataSet напрямую показывают и т.п.
Ну, буду думать..

Кажется мне, что эти странные ошибки возникают из-за не совсем корректных SQL запросов, что легко прокатывали в Access, но не нравятся SQL серверу..
Буду копаться...

Спасибо!

Вернуться в Работа с базами данных в C++Builder