[firebase-br] FB 2.1
Escovador de Bits
escovadordebits em gmail.com
Ter Fev 3 11:54:30 -03 2009
Bom dia/tarde Renato.
Grande Renato, verifique qual é o nome do campo que é retornado na
execução desse mesmo SELECT tanto no FB 1.5 quanto no 2.1 que
provavelmente serão nomes diferentes.
Nessa situação, você tem apenas dois caminhos:
1 - Informe um "alias" para o "COUNT(*)", ou seja, onde havia:
SELECT COUNT(*) FROM WSISNOMES
Utilize:
SELECT COUNT(*) TOTAL FROM WSISNOMES
Dessa forma, sempre receberemos o valor de "COUNT(*)" com o nome
"TOTAL", e sendo assim, onda havia:
Result := sql.FieldByName('COUNT').AsInteger;
Utilize:
Result := sql.FieldByName('TOTAL').AsInteger;
2 - Acesse o campo retornado pelo seu índice e não pelo seu nome, ou
seja, onde havia:
Result := sql.FieldByName('COUNT').AsInteger;
Utilize:
Result := sql.Fields[0].AsInteger;
Dessa forma, você estará acessando o primeiro campo retornado,
independente do nome dele.
Espero ter ajudado mais que atrapalhado. :D
Renato Miranda escreveu:
> Senhores,
>
> Alguém saberia dizer porque o código abaixo não funciona no FB 2.1 ?
> Funciona perfeitamente no FB 1.5 e no IBExpert (o SQL).
>
> Delphi 7 / DBXPress
>
> function TdmPsw.fPegaQtdSis: integer;
> var sql: TSQLDataSet;
> begin
> try
> sql := TSQLDataSet.Create(nil);
> sql.CommandType := ctQuery;
> sql.SQLConnection := dmBase.sqlConBase;
> sql.Close;
> sql.CommandText := 'SELECT COUNT(*) FROM WSISNOMES';
> sql.Prepared := False;
> sql.Open;
> if sql.Eof then
> Result := 0 else
> Result := sql.FieldByName('COUNT').AsInteger;
> finally
> sql.Free;
> end;
> end;
>
>
>
Mais detalhes sobre a lista de discussão lista