Реферат: Перенос приложений MIDAS с одной СУБД на другую
go
Модификация сервера приложений.
Здесь основная часть переработки связана с переходом от IBX (InterBase Express) к ADO (ActiveX Data Object). Основные вещи, на которые следует обратить внимание:
Реализация транзакций на клиенте – в IBX это отдельный компонент, в ADO такая функциональность предоставляется методами TADOConnection. Еще небольшая рекомендация – аккуратно подходите к выбору уровня изоляции транзакций (чем меньше уровень изоляции, тем быстрее будет работать приложение).
Чтобы клиент работал без переделки с разными источниками данных, необходимо, чтобы типы данных полей совпадали. Например, в IBX для numeric(15, 4) по умолчанию подставляется TFloatField, а в ADO – TBCDField. Это единственное отличие, которое мне встретилось при переносе (но это не значит, что их вообще нет). Проблема решилась ручной установкой данного типа поля в TCurrencyField.
Перевод sql-выражений из синтаксиса IB в MSSQL.
Отличия, связанные с различиями структуры БД. Например, если будет реализовано каскадное удаление с помощью ХП, то придется реализовывать эту логику внутри сервера, чтобы оставить клиента нетронутым.
В качестве примера приведем перевод одной из процедур сервера приложений:
//Описание того, что делает данная процедура, читайте в статье Игнатьева. //Код, работающийс IBX function TrdmDoc.ApplyChanges: WideString; begin lock; try FLastUpdateErrors := ''; if FState = osInactive then raise Exception.Create('Документнебылсозданлибооткрыт'); with cdsTitle do begin Edit; FieldByName('DOC_SUM').asCurrency := CalcSum; Post; end; ibtDoc.StartTransaction; //ibtDoc – компоненттранзакции if FState = osInsert then begin if cdsTitle.ChangeCount > 0 then cdsTitle.ApplyUpdates(-1); if cdsBody.ChangeCount > 0 then К-во Просмотров: 369
Бесплатно скачать Реферат: Перенос приложений MIDAS с одной СУБД на другую
|