Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.04.2010, 11:55
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
Восклицание BDE Administrator

Подскажите пожалуйста как программным путем сделать так чтобы псевдоним(алиас) сам создавался в программе BDE Administrator при включении моей программы. в моем случае псевдоним называется "s"
Ответить с цитированием
  #2  
Старый 05.04.2010, 12:34
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Почитай вот здесь.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 05.04.2010, 17:13
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
Смущение упс

А по проще какнибудь можно?
представленный код слишком сложен для восприятия и все пояснения на английском языке
Ответить с цитированием
  #4  
Старый 05.04.2010, 18:05
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Можно, переходите на ADO там алиасы делать не обязательно.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 06.04.2010, 09:30
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Да и в BDE не обязательно, можно просто путь к таблицам указывать и все.
Ответить с цитированием
  #6  
Старый 07.04.2010, 00:56
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
Злость

Цитата:
Сообщение от TOJluK
Да и в BDE не обязательно, можно просто путь к таблицам указывать и все.

но можно так то, но у меня плачевный случай, я квери очень много уже поставил и обращаюсь к ним через алиаз, и чтоб перенести все на путь скорее всего суток 2е уйдет..
Ответить с цитированием
  #7  
Старый 07.04.2010, 09:48
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Код:
 var
  AParams: TStringList;
  MyAlias,Path: string;

begin
  MyAlias := '!ALIAS!';
  Path:='d:\';
  if not Session.IsAlias(MyAlias) then
   begin
      try
        Session.AddStandardAlias(MyAlias,PATH,'PARADOX');
        Session.SaveConfigFile;
      except
        showmessage('ЫЫЫЫЫ! Не пашет!');
        Exit;
      end;
    end;
    AParams := TStringList.Create;
    AParams.Add('PATH=' + PATH);
    Session.ModifyAlias(MyAlias,AParams);
    Session.SaveConfigFile;
    AParams.Free;
Ответить с цитированием
  #8  
Старый 07.04.2010, 23:18
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Может быть пригодится :
Код:
            
function CreateStandardAlias(NrAlwaysCreate: Boolean;
                             NameAlias,
                             Path,
                             DefDrv : String) : Boolean;
//Создать Alias (Standard)                                                                    
Var
   Sess : TSession;
   SList : TStrings;
   Sx : string;
   i : integer;
   Yes : byte;
begin
   Result:=FALSE;
   Yes:=0;
   NameAlias:=Trim(NameAlias);
   Path:=Trim(Path);
   DefDrv:=Trim(DefDrv);
   if Length(DefDrv)<=0 then DefDrv:='PARADOX';
   if (Length(NameAlias)>0) and (Length(Path)>0) then begin
      Sess := TSession.Create(Nil);
      try
        Sess.SessionName:='~~!!SA!!~~';
        SList := TStringList.Create;
        try
          Sess.GetAliasNames(SList);
          i:=-1;
          while i<(SList.Count-1) do
           begin
             i:=i+1;
             Sx:=SList[i];
             Sx:=Trim(Sx);
             if Length(Sx)>0 then begin
                if AnsiUpperCase(Sx)=AnsiUpperCase(NameAlias) then begin
                   Yes:=1;
                   if NrAlwaysCreate then begin
                      Yes:=0;
                      Sess.DeleteAlias(NameAlias);
                   end;
                   i:=SList.Count+1;
                end;
             end;
          end;
        finally
          SList.Free;
        end;
        if Yes<=0 then begin
           Sess.ConfigMode := cmAll;
           Sess.AddStandardAlias(NameAlias, Path,DefDrv);
           Sess.SaveConfigFile;
           Result:=TRUE;
        end;
      finally
        Sess.Free;
      end;
   end;
end;


function CreateIBAlias(NrAlwaysCreate: Boolean;
                       NameAlias,
                       Path,
                       NameUser,
                       LangDrv : String) : Boolean;
//Создать Alias (Interbase)                                                                    
Var
   Sess : TSession;
   SList : TStrings;
   Sx : string;
   i : integer;
   Yes : byte;
begin
   Result:=FALSE;
   Yes:=0;
   NameAlias:=Trim(NameAlias);
   Path:=Trim(Path);
   NameUser:=Trim(NameUser);
   LangDrv:=Trim(LangDrv);
   if Length(LangDrv)<=0 then LangDrv:='ancyrr' {'Pdox ANSI Cyrillic'}; 
   if Length(NameUser)<=0 then NameUser:='SYSDBA';
   if (Length(NameAlias)>0) and (Length(Path)>0) then begin
      Sess := TSession.Create(Nil);
      try
        Sess.SessionName:='~~!!SA!!~~';
        SList := TStringList.Create;
        try
          Sess.GetAliasNames(SList);
          i:=-1;
          while i<(SList.Count-1) do
           begin
             i:=i+1;
             Sx:=SList[i];
             Sx:=Trim(Sx);
             if Length(Sx)>0 then begin
                if AnsiUpperCase(Sx)=AnsiUpperCase(NameAlias) then begin
                   Yes:=1;
                   if NrAlwaysCreate then begin
                      Yes:=0;
                      Sess.DeleteAlias(NameAlias);
                   end;
                   i:=SList.Count+1;
                end;
             end;
          end;
        finally
          SList.Free;
        end;
        if Yes<=0 then begin
           SList := TStringList.Create;
           try
             SList.Add('SERVER NAME='+Path);
             SList.Add('USER NAME='+NameUser);
             SList.Add('LANGDRIVER='+LangDrv);
             Sess.ConfigMode := cmAll;
             Sess.AddAlias(NameAlias, 'INTRBASE', SList);
             Sess.SaveConfigFile;
             Result:=TRUE;
           finally
             SList.Free;
           end;
        end;
      finally
        Sess.Free;
      end;
   end;
end;
    

function Alias_Update(AliasName : string;
                      ListParam : TStrings) : Boolean;
//Изменить настройку Alias                                                                              
Var
 Sess : TSession;
begin
  Result:=FALSE;
  AliasName:=Trim(AliasName);
  if Length(AliasName)>0 then begin
     if ListParam<>NIL then begin
        if ListParam.Count>0 then begin
           Sess := TSession.Create(Nil);
           try
             Sess.SessionName:='~~!!SA!!~~';
             if Sess.IsAlias(AliasName) then begin
                Sess.ConfigMode := cmAll;
                Sess.ModifyAlias(AliasName,ListParam);
                Sess.SaveConfigFile;
                Result:=TRUE;
             end;
           finally
             Sess.Free;
           end;
        end;
     end;
  end;
end;
                                               


function Alias_Delete(AliasName : string) : Boolean;
//Удалить Alias                                 
Var
 Sess : TSession;
begin
  Result:=FALSE;
  AliasName:=Trim(AliasName);
  if Length(AliasName)>0 then begin
     AliasName:=AnsiUpperCase(AliasName);
     Sess := TSession.Create(Nil);
     try
       Sess.SessionName:='~~!!SA!!~~';
       if Sess.IsAlias(AliasName) then begin
          Sess.ConfigMode := cmAll;
          Sess.DeleteAlias(AliasName);
          Sess.SaveConfigFile;
          Result:=TRUE;
       end;
     finally
       Sess.Free;
     end;
  end;
end;


function Get_ListAlias(List : TStrings) : integer;
//Список Alias                             
Var
   Sess : TSession;
begin
   Result:=0;
   if List<>NIL then begin
      List.Clear;
      Sess := TSession.Create(Nil);
      try
        Sess.SessionName:='~~77!!SA!!77~~';
        Sess.GetAliasNames(List);
        Result:=List.Count;
      finally
        Sess.Free;
      end;
   end;
end;
    

function Alias_Exist(AliasName : string) : boolean;
//Проверка существования                                                   
Var
  List : TStrings;
  i : integer;
begin
  Result:=false;
  AliasName:=AnsiUpperCase(Trim(AliasName));
  if length(AliasName)>0 then begin
     List := TStringList.Create;
     TRY
       Get_ListAlias(List);
       i:=-1;
       while i<(List.Count-1) do
        begin
         i:=i+1;
         if AliasName = AnsiUpperCase(Trim(List[i])) then begin
            Result:=true;
            i:=List.Count+1;
         end;
       end;
     FINALLY
       List_Clear(List);
     END;
  end;
end;
  
function GetInfoAboutAlias(NameAlias : String; List : TStrings) : Boolean;
//Прочитать инфу о заданном Alias                                                                        
Var
   Sess : TSession;
begin
   Result:=FALSE;
   if List<>NIL then begin
      List.Clear;
      NameAlias:=Trim(NameAlias);
      if Length(NameAlias)>0 then begin
         NameAlias:=AnsiUpperCase(NameAlias);
         Sess := TSession.Create(Nil);
         try
           Sess.SessionName:='~~99!!SA!!99~~';
           Sess.GetAliasParams(NameAlias,List);
           Result:=TRUE;
         finally
           Sess.Free;
         end;
      end;
   end;
end;
Ответить с цитированием
  #9  
Старый 08.04.2010, 08:39
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Шикарно, если код полностью рабочий, то просто великолепно...
+1
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter