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

на главную - закладки

Жанры

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

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

Шрифт:

 finally

Database.Free; {free memory}

StrDispose(pszDir);

 end;

end;

Информация о псевдониме BDE

Delphi 1

var MyAliasPath: string;

const AliasName='MyAlias';

{****
Получаем из BDE путь MyAlias}

ParamsList:= TStringList.Create;

try

 with Session do begin

Session.GetAliasNames(ParamsList);

Session.GetAliasParams(AliasName,ParamsList);

MyAliasPath:=Copy(ParamsList[0],6,50)+'\';

 end;

finally

 ParamsList.Free;

end;

uses DbiProcs, DBiTypes;

function GetDataBaseDir(const Alias : string): String;

 (* Возвращает каталог базы данных для псевдонима

(без завершающего обратного слеша) *)

var

 sp : PChar;

 Res : pDBDesc;

begin

 try

New(Res);

sp := StrAlloc(length(Alias)+1);

StrPCopy(sp,Alias);

if DbiGetDatabaseDesc(sp,Res) = 0 then Result := StrPas(Res^.szPhyName)

else Result:= '';

 finally

StrDispose(sp);

Dispose(Res);

 end;

end;

Изменение каталога псевдонима во время выполнения приложения

Delphi 1

Я делаю это все время. У меня есть INI-файл, который сообщает, где можно найти таблицы и каталоги их расположения. Вот как я это делаю:

procedure CheckTable(var Table : TTable; var TName : string);

var

 ChangePath: boolean;

 Path: string;

 ActiveState: Boolean;

begin

 if (TName = '') then TName := Table.TableName

 else with Table do begin

ActiveState := Active;

Close;

Path := ExtractFilePath(TName);

ChangePath := HasAttr(DatabaseName, faDirectory) or (CompareText(DatabaseName, Path) <> 0);

if (Length(Path) > 0) and ChangePath then DatabaseName := Path;

if (CompareText(ExtractFileName(Tname), TableName) <> 0) then TableName := ExtractFileName(Tname);

Active := ActiveState;

 end;

end;

Псевдоним

на лету

Delphi 2

Попробуйте это:

type TDataMod = class(TDataModule)

 Database: TDatabase;

public

 procedure TempAlias(NewAlias, NewDir: String);

end;

procedure TDataMod.TempAlias(NewAlias, NewDir: String);

begin

 with Session do if not IsAlias(NewAlias) then begin

ConfigMode := cmSession; (* NewAlias будет ВРЕМЕННЫМ *)

try

AddStandardAlias(NewAlias, NewDir, 'PARADOX');

Database.Close;

Database.AliasName := NewAlias;

Database.Open;

finally

ConfigMode := cmAll;

end;

 end;

end;

Комментарии:

a) Поместите компонент Database на форму DataModule;

b) Задайте свойству DatabaseName имя базы данных, например, 'TempDB';

c) Задайте свойству DatabaseName компонента TTable значение = 'TempDB'

d) Для получения дополнительной информации ознакомьтесь с примером MastApp, поставляемым вместе с D2. 

Поделиться:
Популярные книги

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

На Ларэде

Кронос Александр
3. Лэрн
Фантастика:
фэнтези
героическая фантастика
стимпанк
5.00
рейтинг книги
На Ларэде

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Кай из рода красных драконов

Бэд Кристиан
1. Красная кость
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кай из рода красных драконов

Хозяйка Проклятой Пустоши. Книга 2

Белецкая Наталья
2. Хозяйка Проклятой Пустоши
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка Проклятой Пустоши. Книга 2

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Чапаев и пустота

Пелевин Виктор Олегович
Проза:
современная проза
8.39
рейтинг книги
Чапаев и пустота

Солнечный корт

Сакавич Нора
4. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Солнечный корт

Лютая

Шёпот Светлана Богдановна
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Лютая

Ведьмак (большой сборник)

Сапковский Анджей
Ведьмак
Фантастика:
фэнтези
9.29
рейтинг книги
Ведьмак (большой сборник)

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4

Ученик

Губарев Алексей
1. Тай Фун
Фантастика:
фэнтези
5.00
рейтинг книги
Ученик

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5