출처:
http://blog.naver.com/PostView.nhn?blogId=timeofline&logNo=140098964103
BDE_Alias.ZIP

읽기, 추가, 삭제 포함.
예제를 만들어 소스화일과 같이 첨부한다.
다들 수고하고 감기 조심하자.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBTables, ExtCtrls, Grids;
type
TForm1 = class(TForm)
Button1: TButton;
ComboBox1: TComboBox;
Label1: TLabel;
Label2: TLabel;
memo1: TMemo;
RadioGroup1: TRadioGroup;
procedure Button1Click(Sender: TObject);
procedure value_loading(Aname : string);
procedure value_writing;
procedure ComboBox1Change(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
RadioGroup1Click(Sender);
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
var
CurrentAliases: TStringList;
begin
case RadioGroup1.ItemIndex of
0,2 : begin
ComboBox1.Style := csDropDownList;
CurrentAliases := TStringList.Create;
try
Session.GetAliasNames(CurrentAliases) ;
ComboBox1.Items:= CurrentAliases;
finally
CurrentAliases.Free;
end;
IF ComboBox1.Items.Count > 0 then
begin
ComboBox1.ItemIndex := 0;
ComboBox1.OnChange(Sender);
end;
end;
1 : begin
ComboBox1.Clear;
ComboBox1.Items.Add('ERPDB');
ComboBox1.SetFocus;
ComboBox1.ItemIndex := 0;
ComboBox1.SelectAll;
ComboBox1.Style := csDropDown;
end;
end;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Case RadioGroup1.ItemIndex of
0, 2 : begin
if ComboBox1.ItemIndex <> -1 then
value_loading(ComboBox1.text);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Case RadioGroup1.ItemIndex of
0 : RadioGroup1.OnClick(Sender);
1 : begin
IF Trim(ComboBox1.Text) <> '' then
value_writing
else
ShowMessage('Alias명 또는 Params List를 확인하세요');
end;
2 : begin
IF ComboBox1.ItemIndex <> -1 then
begin
IF MessageDlg('Alias('+ComboBox1.Text+')를 정말 삭제하시겠습니까?' +#13#13+ '삭제된
Alias는 복구되지 않습니다.',mtWarning,mbOKCancel,0) = mrOK then
begin
Session.DeleteAlias(ComboBox1.Text);
ShowMessage('Alias('+ComboBox1.Text+')가 삭제되었습니다.');
RadioGroup1.OnClick(Sender);
end;
end else
ShowMessage('삭제할 Alias가 선택되지 않았습니다.');
end;
end;
end;
procedure TForm1.value_loading(Aname : string);
var
sMaybeAlias : string;
ParamList : TStringList;
begin
if ComboBox1.ItemIndex <> -1 then
begin
sMaybeAlias := ComboBox1.Text;
if Session.isAlias(sMaybeAlias) then
begin
ParamList := TStringList.Create;
try
Session.GetAliasParams(sMaybeAlias, ParamList) ;
// ListBox1.Items := ParamList;
memo1.Lines := ParamList;
finally
ParamList.Free;
end;
end
else
ShowMessage(sMaybeAlias) ;
end;
end;
procedure TForm1.value_writing;
var NewAliasParams : TStringList;
AliasName : string;
i : Integer;
s : string;
begin
ComboBox1.text := Trim(ComboBox1.text);
AliasName:=ComboBox1.text;
IF Session.IsAlias(AliasName) then
Case MessageDlg('이미 Alias :
'+AliasName+' 가 존재합니다.'+#13#13+'삭제한 후 진행할까요?' +#13#13+ '삭제된 Alias는 복구되지
않습니다.',mtWarning,mbOKCancel,0) of
mrOk : Session.DeleteAlias(AliasName);
mrCancel : Exit;
end;
NewAliasParams := TStringList.create;
try
for i := 0 to memo1.Lines.Count-1 do
begin
s := memo1.Lines.Strings[i];
if (Trim(s) <> '') and (Trim(Copy(s,1,Pos('=',s)-1)) <> '')
and (Trim(Copy(s, Pos('=',s)+1 , Length(s))) <> '') then
NewAliasParams.Values[ Trim(Copy(s,1,Pos('=',s)-1)) ] := Trim(Copy(s, Pos('=',s)+1 , Length(s)));
end;
Session.AddAlias(AliasName, 'MSSQL', NewAliasParams) ;
Session.SaveConfigFile;
ShowMessage('Alias : '+ AliasName +' 이 정상적으로 등록되었습니다.');
{
NewAliasParams.Values['DATABASE NAME'] := 'DBname';
NewAliasParams.Values['SERVER NAME'] := '192.168.0.1';
NewAliasParams.Values['USER NAME'] := 'sa';
NewAliasParams.Values['OPEN MODE'] := 'READ/WRITE';
NewAliasParams.Values['SCHEMA CACHE SIZE'] := '8';
NewAliasParams.Values['BLOB EDIT LOGGING'] := '';
NewAliasParams.Values['LANGDRIVER'] := '';
NewAliasParams.Values['SQLQRYMODE'] := '';
NewAliasParams.Values['SQLPASSTHRU MODE'] := 'SHARED AUTOCOMMIT';
NewAliasParams.Values['DATE MODE'] := '0';
NewAliasParams.Values['SCHEMA CACHE TIME'] := '-1';
NewAliasParams.Values['MAX QUERY TIME'] := '300';
NewAliasParams.Values['MAX ROWS'] := '-1';
NewAliasParams.Values['BATCH COUNT'] := '200';
NewAliasParams.Values['ENABLE SCHEMA CACHE'] := 'FALSE';
NewAliasParams.Values['SCHEMA CACHE DIR'] := '';
NewAliasParams.Values['HOST NAME'] := '';
NewAliasParams.Values['APPLICATION NAME'] := '';
NewAliasParams.Values['NATIONAL LANG NAME'] := '';
NewAliasParams.Values['ENABLE BCD'] := 'FALSE';
NewAliasParams.Values['TDS PACKET SIZE'] := '4096';
NewAliasParams.Values['BLOBS TO CACHE'] := '64';
NewAliasParams.Values['BLOB SIZE'] := '32';
Session.AddAlias(AliasName, 'MSSQL', NewAliasParams) ;
Session.SaveConfigFile;
}
except
on E: Exception do
MessageDlg(E.Message, mtWarning, [mbOK], 0);
end;
NewAliasParams.Free;
end;
end.