Форум по 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,907
Версия 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
По умолчанию

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
По умолчанию

Может быть пригодится :
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
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, время: 12:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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