Fórum Erro Delphi Argument out of range #620546
26/09/2023
0
Tenho uma função de listar os dados da tabela no DBGrid , mas quando clico no botão, aparece a mensagem " Argument out of range". Alguém pode me ajudar?
Segue o código abaixo:
procedure TPageCadastroPessoas.btnPesquisarClick(Sender: TObject);
var
lGrid : TDBGrid;
FDatasource : TDataSource;
begin
PnlPrincipal.ActiveCard := cardPesquisa;
FDatasource := TDataSource.Create(nil);
FController.Pessoa.Build.ListarTodos;
try
FController.Pessoa.Build.DataSource(FDatasource).ListarTodos;
if FDatasource.DataSet.IsEmpty then
begin
ShowMessage(''''Não existem dados a serem visualizados '''');
Exit;
end;
FDatasource.DataSet.First;
DBGrid1.Columns.Clear;
DBGrid1.Columns.Add;
FDatasource.DataSet.First;
while not FDatasource.DataSet.Eof do
begin
DBGrid1.Columns[0].FieldName := FDatasource.DataSet.FieldByName
(''''ID'''').AsString;
DBGrid1.Columns[1].FieldName := FDatasource.DataSet.FieldByName
(''''TIPOCADASTRO'''').AsString;
DBGrid1.Columns[2].FieldName := FDatasource.DataSet.FieldByName
(''''NOME'''').AsString;
DBGrid1.Columns[3].FieldName := FDatasource.DataSet.FieldByName
(''''DATANASCREG'''').AsString;
DBGrid1.Columns[4].FieldName := FDatasource.DataSet.FieldByName
(''''CPFCNPJ'''').AsString;
DBGrid1.Columns[8].FieldName := FDatasource.DataSet.FieldByName
(''''TELEFONE'''').AsString;
DBGrid1.Columns[5].FieldName := FDatasource.DataSet.FieldByName
(''''CIDADE'''').AsString;
DBGrid1.Columns[6].FieldName := FDatasource.DataSet.FieldByName
(''''BAIRRO_DISTRITO'''').AsString;
DBGrid1.Columns[7].FieldName := FDatasource.DataSet.FieldByName
(''''ESTADO'''').AsString;
DBGrid1.Columns[9].FieldName := FDatasource.DataSet.FieldByName
(''''EMAIL'''').AsString;
DBGrid1.Columns[10].FieldName := FDatasource.DataSet.FieldByName
(''''ATIVO'''').AsString;
DBGrid1.Columns[11].FieldName := FDatasource.DataSet.FieldByName
(''''DATAINICIO'''').AsString;
DBGrid1.Columns[12].FieldName := FDatasource.DataSet.FieldByName
(''''DATAFIM'''').AsString;
FDatasource.DataSet.Next;
end;
finally
FDatasource.DisposeOf;
end;
end;
Agradeço a ajuda.
Mauricio Bomfim
Curtir tópico
+ 0Posts
26/09/2023
Arthur Heinrich
DBGrid1.Columns[0].FieldName := FDatasource.DataSet.FieldByName(''''ID'''').AsString;
É possível isto esteja errado e exista alguma limitação para o nome de uma coluna. Ao atribuir o valor de uma coluna String do DataSource para o FieldName, pode estar violando este tamanho máximo.
Gostei + 0
27/09/2023
Mauricio Bomfim
DBGrid1.Columns[0].FieldName := FDatasource.DataSet.FieldByName(''''ID'''').AsString;
É possível isto esteja errado e exista alguma limitação para o nome de uma coluna. Ao atribuir o valor de uma coluna String do DataSource para o FieldName, pode estar violando este tamanho máximo.
Pode me dizer o que devo usar para substitui o FiledName?
Gostei + 0
27/09/2023
Arthur Heinrich
DBGrid1.DataSource := FDatasource;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)