Delphi:使用SQL服务器类型定义静态列表

时间:2014-04-27 18:02:07

标签: list delphi types

我正在使用不同类型的SQL数据库服务器的程序。 在这个程序中,我玩这个项目很多。

这就是我现在定义静态列表的方式:

type 
  TServerType = (stNone, stMsSQL, stMySQL, stSQLite);

现在,我想将这个静态列表与服务器的短名称和长名称联系起来:

stNone    | (null) | (null)
stMsSQL   | mssql  | Microsoft SQL
stMySQL   | mysql  | MySQL
stSQLLite | sqlite | SQLite

是否可以使用此type直接执行此操作? (可以在没有varconstarray

的情况下完成

或者您如何建议最好定义此关联列表?

1 个答案:

答案 0 :(得分:1)

静态数组适用于此:

type 
  TServerType = (stNone, stMsSQL, stMySQL, stSQLite);

  TServerNames = record
    ShortName: String;
    LongName: String;
  end;

const
  ServerNames: array[TServerType] of TServerNames = (
    (ShortName: ''; LongName: ''),
    (ShortName: 'mssql'; LongName: 'Microsoft SQL'),
    (ShortName: 'mysql'; LongName: 'MySQL'),
    (ShortName: 'sqlite'; LongName: 'SQLite')
  );

var
  ServerType: TServerType;
  ShortName: String;
  LongName: String; 
begin
  ServerType := ...;
  ShortName := ServerNames[ServerType].ShortName;
  LongName := ServerNames[ServerType].LongName;
  ...
end;