我正在使用不同类型的SQL数据库服务器的程序。 在这个程序中,我玩这个项目很多。
这就是我现在定义静态列表的方式:
type
TServerType = (stNone, stMsSQL, stMySQL, stSQLite);
现在,我想将这个静态列表与服务器的短名称和长名称联系起来:
stNone | (null) | (null)
stMsSQL | mssql | Microsoft SQL
stMySQL | mysql | MySQL
stSQLLite | sqlite | SQLite
是否可以使用此type
直接执行此操作? (可以在没有var
或const
和array
)
或者您如何建议最好定义此关联列表?
答案 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;