Реферат: Перенос приложений 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 с одной СУБД на другую