Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHIMASTER.ru

Выпуск от 27.06.04 09:18

Акция !

Внимание!Акция в поддержку отечественного производителя ПО. Подробнее...

Лучшее из нашего FAQ   |x|
Как узнать каталог, где находятся файлы базы данных, если знаем только алиас?
Воспользуемся компонентом TSession:

function GetDBPath(const Alias: string): string;
var AllSt: TStringList;
   i: integer;
   S: string;
begin
 Result:='';
 if Length(Alias)<>0 then begin
   AllSt := TStringList.Create;
   try
     DM1.Session1.GetAliasParams(Alias,AllSt);
     S:='';
     for i:=0 to AllSt.Count-1 do begin
       if Copy(AllSt[i],1,11)='SERVER NAME' then begin
         S:=ExtractFilePath(Copy(AllSt[i],13,80));
         Break;
       end else if Copy(AllSt[i],1,4)='PATH' then begin
         S:=Copy(AllSt[i],6,80);
         Break;
       end;
     end;
     if Length(S)<>0 then Result:=S
   finally
     AllSt.Free;
   end;
 end;
end;


Модификация этого примера от Середа Александра (alex@uice.com.ua)
1. Если делать универсальную функцию, то Session лучше передавать как параметр.
2. Если уж создаем StringList, то давайте использовать его возможности.

function GetDBPath(ASession: TSession; const Alias: string): string;
var
 AllSt: TStringList;
begin
 Result:='';
 if Length(Alias)<>0 then begin
   AllSt := TStringList.Create;
   try
     ASession.GetAliasParams(Alias,AllSt);
     if (AllSt.IndexOfName('SERVER N! AME') > -1) then
       Result := AllSt.Values['SERVER NAME']
     else if (AllSt.IndexOfName('PATH') > -1) then
       Result := AllSt.Values['PATH'];
   finally
     AllSt.Free;
   end;
 end;
end;



Вариант от Vitaly Grobshtein  (tusm5@vorkuta.com)
Давно пользуюсь другим приемом. Работает надежно.
 
//********************************************************************
// Возвращает путь к базе по имени алиаса (вместе с конечным "\")
function GetPhNameByAlias(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 := OemToAnsiStr(StrPas( pszDir )); {convert to a string}
 finally
   Database.Free; {free memory}
   StrDispose( pszDir );
 end;
end;

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
  • Порты
    Уважаемые мастера, подскажите, как можно програмно закрыть/открыть какой-либо порт?
  • Работа с памятью
    Возмоно это ламерский вопрос, но у меня есть проблемка в написании движка.Предположим есть тип TSprite и Sprite1, ...
  • Блокировка Windows
    Хочу сделать программу которая будет запускаться вместо Explorer'а и все действия будут выполняться через неё. ...
  • Чем достать ID3v2 из MP3?
    Подскажите, plz, библиотеку/компонет. С id3.org не предлагать: не работает с 30% файлов.
  • Пароли при динамическом создании таблиц
    Вопрос такой - можно ли при динамическом создании таблицы задать пароль доступа к ней, и если да, то как? ...
  • Что за приколы c потрепаться?
    Не в тему конечно. Но потрепаться не работает. Все форумы работают. А потрепаться не работает (Internal Server Error) ...

У нас большой выбор статей   |x|
А СОБСТВЕННО ЗАЧЕМ? Немного об пользовательских интерфейсах. Часть 3.
Термин юзабилити становится все более модным. Его начинают склонять все кому не лень. Не удивлюсь если в скором времени, они будут зазывать пользователей слоганами вроде: "В нашей программе самое лучшее юзабилити. Покупайте только у нас!"... И возникает резонный вопрос, помимо этой своеобразной моды на юзабилити, существуют ли другие основания, для того чтобы программисты дружною толпой кинулись в дебри проектирования интерфейсов и эргономики?
Новинки книжного рынка   |x|
Языки программирования: разработка и реализация. 4-е изд.
В книге известных американских специалистов в области языков программирования Т. Пратта и М. Зелковица рассматриваются общие концепции разработки и реализации языков программирования, а также основы формальных грамматик и конечных автоматов — математических моделей, используемых для определения и реализации языков программирования. Это именно та база, которая необходима высококвалифицированному программисту для создания производительных и устойчивых к ошибкам программ. Изложение материала в книге не привязано ни к какому конкретному языку программирования, хотя предполагается, что читатель знаком хотя бы с одним процедурным и с одним объектно-ориентированным языком. Книга будет полезна студентам высших учебных заведений, а также программистам любой квалификации.
Автор: Пратт Т., Зелковиц М.
Опрос населения :)
Что мешает плохому танцору?
»»» Эти штуки... ;)
»»» Танцовщица
»»» Крылья
»»» Оппозиция
»»» Что и хорошему
»»» Ничего мне не мешает!
Для души

Хокку дня
Гляжу - опавший лист
Опять взлетел на ветку:
То бабочка была.

Афоризмы
Когда дети ставили отца в тупик, он отправлял их в угол (Валерий Миронов)

Фраза дня
Объявление в туалете: "В случае бомбежки прятаться под этот писсуар - в него еще никто никогда не попадал".

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В городе Провиденсе, Род Айланд (США), в магазинах запрещено по воскресеньям продавать зубную щетку и пасту одному и тому же покупателю.
В Аризоне (США) под угрозой штрафа запрещено класть спать осла в ванной.

И на закуску коротенький анекдот
Жена жалуется Мужу:
- Что-то случилось с нашим телефоном: я pазговаpивала со своей подpугой и мы совеpшенно не могли дpуг дpуга понять.
- А вы не пpобовали говоpить по очеpеди?

Фотоприколы.
Начните день с хорошего настроения!
http://www.delphimaster.ru/cgi-bin/prikol.pl?id=84295654


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (merlin@delphimaster.ru)

Добро пожаловать на сайт -= Мастера DELPHI =- 

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться

В избранное