大悟还俗

邮箱 key_ok@qq.com 我的收集 http://pan.baidu.com/share/home?uk=1177427271
posts - 236, comments - 8, trackbacks - 0, articles - 0
  新随笔  :: 联系 :: 订阅 订阅  :: 管理

TUniConnection的SpecificOptions参数决定了数据库连接配置参数,但可惜的是,SpecificOptions设计器界面,Devart公司只能让它在设计期配置!

 

SpecificOptions参数为什么那么有用呢?举个例子讲,如果你要连接MSSQL,可能碰到老版本的OLEDB或者当下的NativeClient版本,具体参数可选为:prAuto、prSQL、prNativeClient、prCompact。

 

因此,我们如果自己做界面参数配置,必须获取SpecificOptions默认值和下拉框表列表值。

首先在界面上放TUniConnection,设置ProviderName为SQL Server;在界面上放置TSQLServerUniProvider

代码如下

 

 
type
  TMyConn = class(TUniConnection)
  end;
 
procedure TForm7.btn1Click(Sender: TObject);
var
  OptionsList: TOptionsList;
  i: Integer;
  Msg: string;
  List: TStringList;
begin
  mmo1.Clear;
  List := TStringList.Create;
  if TMyConn(UniConnection1).CanGetProvider then
  begin
    OptionsList :=   TMyConn(UniConnection1).GetProvider.GetConnectionOptions;
    for i := 0 to OptionsList.Count - 1 do
    begin
      List.Clear;
      OptionsList[i].GetValuesList(List);
      Msg := Msg + OptionsList[i].OptionName +
        ' - ' +
        VarToStr(OptionsList[i].GetDefaultValue) + ' = ' +
        OptionsList[i].GetAsString(OptionsList[i].GetDefaultValue) +
        ':' + sLineBreak + List.Text + sLineBreak;
    end;
 
    mmo1.Lines.Add(Msg);
  end;
  List.Free;
end;
 

 

 

默认的unidac配置参数界面