Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

В Удаленный Модуль Данных бросьте компонент TDatabase, затем добавьте процедуру автоматизации (пункт главного меню Edit | Add To Interface) для Login.

Убедитесь, что свойство HandleShared компонента TDatabase установлено в True.

procedure Login(UserName, Password: WideString);

begin

 { DB = TDatabase }

 { Something unique between clients }

 DB.DatabaseName := UserName + 'DB';

 DB.Params.Values['USER NAME'] := UserName;

 DB.Params.Values['PASSWORD'] := Password;

 DB.Open;

end;

После

того, как Вы создали этот метод автоматизации, Вы можете вызывать его с помощью:

RemoteServer1.AppServer.Login('USERNAME','PASSWORD');

Paradox 

Byte-поля Paradox

Delphi 2 

Что за магия при записи в поле Paradox Byte? По этому поводу в документации ничего не сказано.

Есть 2 пути получить доступ к данным в TBytesField.

Просто вызовите метод GetData, передавая ему указатель на буфер, где сам буфер должен иметь размер, достаточный для хранения данных:

procedure SetCheckBoxStates;

var CBStates: array[1..13] of Byte;

begin

 CBStateField.GetData(CBStates);

 { Здесь обрабатываем данные… }

end;

Для записи значений вы должны использовать SetData.

Используйте свойство Value, возвращающее вариантный массив байт (variant array of bytes):

procedure SetCheckBoxStates;

var CBStates: Variant;

begin

 CBStates := CBStateField.Value;

 { Здесь обрабатываем данные… }

end;

Первый метод, вероятно, для вас будет легче, поскольку вы сразу докапываетесь до уровня байт. Запись данных также получится сложнее, поскольку вам нужно будет работать с variant-методами типа VarArrayCreate и др.

– Mark Edington

Доступ к таблицам Paradox на CD или c флагом только для чтения

Тема: Доступ к таблицам Paradox на CD или на дисках c флагом только для чтения

Данный совет поможет вам разобраться в таком вопросе, как доступ к таблицам Paradox, расположенным на CD-ROM или диске, имеющем флаг "только для чтения".

Механиз блокирования файлов Paradox требует наличие файла PDOXUSRS.LCK, осуществляющий логику работы блокировки. Данный файл обычно создается во время выполнения приложения и располагается в том же каталоге, где и таблицы. Тем не менее, в случае с CD-ROM, во время выполнения программы нет никакой возможности создать на нем описанный выше файл. Решение простое: мы создаем этот файл и помещаем его на CD-ROM во время его (CD)

создания. Следующая простейшая программка позволит создать вам файл PDOXUSRS.LCK и поместить его в образ компакта для его последующего копирования на CD-ROM:

1. Стартуйте пустой проект и добавьте на форму следующие компоненты: TEdit, TButton и TDatabase.

2. В обработчике кнопки OnClick используйте следующий код:

procedure TForm1.Button1Click(Sender: TObject);

begin

 if ChkPath then Check(DbiAcqPersistTableLock(Database1.Handle, 'PARADOX.DRO','PARADOX'));

end;

3. Функция ChkPath является методом, определенным пользователем для формы. Она просто проверяет путь, введенный пользователем в поле редактирования и убеждается, что он существует. Вот функция:

function TForm1.ChkPath : Boolean;

var s: array[0..100] of char;

begin

 If DirectoryExists(Edit1.Text) then begin

DataBase1.DatabaseName:= 'TempDB';

DataBase1.DriverName:= 'Standard';

DataBase1.LoginPrompt:= false;

DataBase1.Connected := False;

DataBase1.Params.Add('Path=' + Edit1.Text);

DataBase1.Connected := TRUE;Result := TRUE;

 end else begin

StrPCopy(s,'Каталог : ' + Edit1.text + ' не найден');

Application.MessageBox(s, 'Ошибка!', MB_ICONSTOP);

Result := FALSE;

 end;

end;

{ Примечание: Не забудьте добавить объявление функции в секцию public формы.}

4. Перед компиляцией необходимо вспомнить еще об одной вещи: в список Uses нужно добавить следующие модули:

Delphi 1.0: FileCtrl, DbiProcs, DbiTypes, DbiErrs.

Delphi 2.0: FileCtrl, BDE

После компиляции и выполнения, программа создаст два файла в определенном вами каталоге. Создаваемые два файла: PDOXUSRS.LCK и PARADOX.LCK.

Примечание: Файл PARADOX.LCK необходим только для доступа к таблицам Paradox for DOS, так что вы можете его удалить.

5. Вам осталась сделать только одну последнюю вещь: скопировать оставшийся файл (PDOXUSRS.LCK) в образ CD-ROM. Естественно, ваши таблицы будут только для чтения.

Примечание: Если вы собираетесь довольно часто пользоваться данной утилитой, то для удобства вы можете изменить свойство Text компонента Edit на ваш «любимый» каталог, а свойство Caption кнопки поменять на что-нибудь более «интеллектуальное».

Вот окончательная версия кода:

unit Unit1;

Поделиться с друзьями: