case语句
var
leixing:string
调用数据库
adoquery1.Close;
adoquery1.SQL.Clear;
ADOQuery1.sql.add('select * from 表1 where id="1"');
ADOQuery1.Active:=true;
leixing1:=adoquery1.fieldbyname('数据1').AsString;
case leixing of
'00':leixing:='long';
'01':leixing:='short01';
'02':leixing:='short02';
'03':leixing:='short03';
'04':leixing:='short04';
'05':leixing:='short05';
else
begin
end
end;
报错,错误为
[Error] Unit2.pas(316): Ordinal type required
[Error] Unit2.pas(317): Incompatible types: 'Integer' and 'String'
[Error] Unit2.pas(318): Incompatible types: 'Integer' and 'String'
[Error] Unit2.pas(319): Incompatible types: 'Integer' and 'String'
[Error] Unit2.pas(320): Incompatible types: 'Integer' and 'String'
[Error] Unit2.pas(321): Incompatible types: 'Integer' and 'String'
[Error] Unit2.pas(322): Incompatible types: 'Integer' and 'String'
[Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit2.pas'
用if then 语句可以,但if语句书写过多,请问怎样使用case语句
[解决办法]
case不能用字符串
case strtoint(leixing) of
0:
1:
...........
[解决办法]
没见过case 条件用字符串的
用integer;
[解决办法]
case leixing of
除非你这些字符串用枚举定义了。
因为使用case 的条件必须是 有顺序的