Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Советы по Delphi. Версия 1.4.3 от 1.1.2001
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

А вообще я 32bit дельфях в Vendor Init давно прописываю OCIW32.dll – он всегда для последней версии сервера с которым ты работаешь.

Это IMHO. Hо у меня Delphi3 и Delphi1 коннектятся как с Oracle 7.1 на Unix'е, так и с Personal Oracle 7.3

WindowsNT 4.0 + Delphi 2.01 C/S + Oracle Client 7.3 + Oracle Server 7.3. После логина в базу данных возникает `EExternalError 0xC0000008`. Что делать?

Nomadicкоротко отвечает:

A: (IA, SK): Снести Oracle Trace Collection Services.

Псевдонимы

Получение пути псевдонима и таблицы I

Delphi 1

Есть три способа сделать это… №1 годится только для постоянных псевдонимов BDE. №2 работает с BDE и локальными псевдонимами, и No3 работает с BDE и локальными псевдонимами, используя "тяжелый" путь, через вызовы DBI.

functionGetDBPath1(AliasName: string): TFileName;

varParamList: TStringList;

begin

ParamList := TStringList.Create;

withSession do try

GetAliasParams(AliasName,ParamList);

Result := UpperCase(ParamList.Values['PATH'])+'\';

finally

Paramlist.Free;

end;

end;

functionGetDBPath2(AliasName: string): TFileName;

var

ParamList: TStringList;

i: integer;

begin

ParamList := TStringList.Create;

withSession do try

try

GetAliasParams(AliasName,ParamList);

except

fori:=0 topred(DatabaseCount) do

if(Databases[i].DatabaseName = AliasName) then

ParamList.Assign(Databases[i].Params);

end;

Result := UpperCase(ParamList.Values['PATH'])+'\';

finally

Paramlist.Free;

end;

end;

functionGetDBPath3(ATable: TTable): TFileName;

var

TblProps: CURProps;

pTblName, pFullName: DBITblName;

begin

withATable do begin

AnsiToNative(Locale, TableName, pTblName, 255);

Check(DBIGetCursorProps(Handle, TblProps));

Check(DBIFormFullName(DBHandle,pTblName,TblProps.szTableType,pFullName));

Result := ExtractFilePath(StrPas(pFullName));

end;

end;

Reinhard Kalinke

Получение пути псевдонима и таблицы II

Вот маленький примерчик того, как в Delphi можно получить информацию о псевдонимах. Для начала создайте новый проект с ListBox и тремя метками (с именамиListBox1, Label1, Label2 и Label3). Затем создайте обработчик события формы OnCreate с примерно следующим кодом:

procedureTForm1.FormCreate(Sender: TObject);

begin

Session.GetAliasNames(ListBox1.Items);

end;

Теперь создайте обработчик OnClick для ListBox:

procedureTForm1.ListBox1Click(Sender: TObject);

var

tStr: array[0..100] ofchar;

Desc: DBDesc;

begin

ifListBox1.Items.Count = 0 thenexit;

StrPLCopy(tStr, ListBox1.Items.Strings[ListBox1.ItemIndex], High(tStr));

DbiGetDatabaseDesc(tStr, @Desc);

withDesc do begin

Label1.Caption := StrPas(Desc.szName);

Label2.Caption := StrPas(Desc.szPhyName);

Label3.Caption := StrPas(Desc.szDbType);

end;

end;

Добавьте следующие модули в секцию 'uses' в верхней части модуля:

DB, DBTables, DBITypes, DBIProcs;

Теперь вы можете увидеть путь для всех ваших стандартных псевдонимов (Paradox и dBase).

Получение пути псевдонима и таблицы III

Delphi 1

Используйте Session.GetAliasParams. В ответ вы получите объект Tstrings, откуда вы можете получить значение для переменной 'PATH". Для получения дополнительной информации обратитесь к электронной справке к разделу, описывающему TSession. Объект Session объявлен в модуле DB.

usesdb;

varaliaspath : string[128];

begin

aliaspath := Session.GetAliasParams['MyAlias'].values['PATH'];

end;

usesSysUtils,DbiProcs, DBiTypes;

...

functionGetDataBaseDir( constAlias : string): String;

(* Возвращает каталог базы данных, на которую

ссылается псевдним (без конечного обратного слеша) *)

var

sp : PChar;

Res : pDBDesc;

begin

try

New(Res);

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

StrPCopy(sp,Alias);

ifDbiGetDatabaseDesc(sp,Res) = 0 thenResult := StrPas(Res^.szPhyName)

elseResult := '';

finally

StrDispose(sp);

Dispose(Res);

end;

end;

Получение пути псевдонима и таблицы IV

Nomadicсоветует:

1. По таблице (фактически по Database) получить физическое местонахождение.

Примечание: Database можно создать явно, если нет, Дельфи сама его создаст, доступ к ней по Table(Query).Database

usesDbiProcs;

functionGetDirByDatabase(Database: TDatabase): string;

varpszDir: PChar;

begin

pszDir := StrAlloc(255);

try

DbiGetDirectory(Database.Handle, True, pszDir);

Result := StrPas(pszDir);

finally

StrDispose(pszDir);

end;

end;

2. По алиасу.

functionGetPhNameByAlias(sAlias: string): string;

var

Database: TDatabase;

pszDir: PChar;

begin

Database := TDatabase.Create( nil); {allocate memory}

pszDir := StrAlloc(255);

try

Database.AliasName := sAlias;

Database.DatabaseName := 'TEMP'; {requires a name – is ignored}

Database.Connected := True; {connect without opening any table}

DbiGetDirectory(Database.Handle, True, pszDir); {get the dir.}

Database.Connected := False; {disconnect}

Result := StrPas(pszDir); {convert to a string}

finally

Database.Free; {free memory}

StrDispose(pszDir);

end;

end;

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

Delphi 1

varMyAliasPath: string;

constAliasName='MyAlias';

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

ParamsList:= TStringList.Create;

try

withSession do begin

Session.GetAliasNames(ParamsList);

Session.GetAliasParams(AliasName,ParamsList);

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

end;

finally

ParamsList.Free;

end;

usesDbiProcs, DBiTypes;

functionGetDataBaseDir( constAlias : string): String;

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

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

var

sp : PChar;

Res : pDBDesc;

begin

try

New(Res);

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

StrPCopy(sp,Alias);

ifDbiGetDatabaseDesc(sp,Res) = 0 thenResult := StrPas(Res^.szPhyName)

elseResult:= '';

finally

StrDispose(sp);

Dispose(Res);

end;

end;

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

Delphi 1

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x