Estou fazendo um sistema em delphi e esta ocorrendo um pequeno ("grande") problema.
Estou crindo uma tela de pesquisa utilisando o componente ListView.
As colunas desta tabela (ListView) contem nomes para a identificação das informações.
Quando a janela de pesquisa abre sem nenhuma informação buscada na base de dados, a tabela (ListView) aparece sem erro nenhum. Mas, se alguma informação existir na base de dados o título desta tabela (ListView) some, e só aparece quando clicamos com o mouse.
Estou utilizando delphi 7 com o banco de dados postgres utilizando conexão atraves do componente ADOConnection, e as consultas sql atraves do componente ADOQuery.
Gostaria de saber um jeito de reverter este problema.
Segue abaixo o código que estou utilizando para preencher a ListView:
procedure TfrmPesquisaReq.CarregaDados;
var
lstitmItem: TListItem;
vCont: Integer;
begin
lstvwDados.ShowColumnHeaders := true;
lstvwDados.Clear;
if cmbxFiltro.ItemIndex = 0 then
begin
dtmdlConnection.QueryAuxiliar.Close;
dtmdlConnection.QueryAuxiliar.SQL.Clear;
dtmdlConnection.QueryAuxiliar.SQL.Add('Select req.id, req.data, req.dia, req.etapa, und.nome, Sum(quantidade) as quantidade');
dtmdlConnection.QueryAuxiliar.SQL.Add('from req, und where req.id = und.id');
dtmdlConnection.QueryAuxiliar.SQL.Add('group by req.id, req.data, req.dia, req.etapa, und.nome');
end
else
begin
dtmdlConnection.QueryAuxiliar.Close;
dtmdlConnection.QueryAuxiliar.SQL.Clear;
dtmdlConnection.QueryAuxiliar.SQL.Add('Select req.id, req.data, req.dia, req.etapa, und.nome, Sum(und.quantidade) as quantidade');
dtmdlConnection.QueryAuxiliar.SQL.Add('from req, und where req.id = :condicao and req.id = und.id');
dtmdlConnection.QueryAuxiliar.SQL.Add('group by req.id, req.data, req.dia, req.etapa, und.nome');
dtmdlConnection.QueryAuxiliar.Parameters.ParamByName('condicao').Value := StrToInt(strnglstReq[cmbxFiltro.ItemIndex]);
end;
dtmdlConnection.QueryAuxiliar.Open;
vCont := 0;
while not dtmdlConnection.QueryAuxiliar.Eof do
begin
vCont := vCont + 1;
lstitmItem := lstvwDados.Items.Add;
lstitmItem.Caption := IntToStr(vCont);
lstitmItem.SubItems.Add(dtmdlConnection.QueryAuxiliar.FieldByName('id').AsString);
lstitmItem.SubItems.Add(dtmdlConnection.QueryAuxiliar.FieldByName('data').AsString);
lstitmItem.SubItems.Add(dtmdlConnection.QueryAuxiliar.FieldByName('nome').AsString);
lstitmItem.SubItems.Add(dtmdlConnection.QueryAuxiliar.FieldByName('dia').AsString);
lstitmItem.SubItems.Add(dtmdlConnection.QueryAuxiliar.FieldByName('etapa').AsString);
lstitmItem.SubItems.Add(dtmdlConnection.QueryAuxiliar.FieldByName('quantidade').AsString);
dtmdlConnection.QueryAuxiliar.Next;
end;
dtmdlConnection.QueryAuxiliar.Close;
lstitmItem.ListView.Refresh;
end;
Estou chamando esta procedure no onActivate do formulario.
Os nomes das colunas das tableas estão diferentes que as da base de dados.
alguém poderia me ajudar.
E outra pergunta. Em qual evento do ADOQuery que eu trato as respostas de erro de chave estrangeira vindas do banco postgres
Obrigado mais uma vez e desculpe pela amolação
Editado por Micheus Adicionado o delimitador de código [code] [/code]. Lembre-se de utilizá-lo para melhor visualização
Pergunta
Guest --samuelsjn --
Pessoal,
Estou fazendo um sistema em delphi e esta ocorrendo um pequeno ("grande") problema.
Estou crindo uma tela de pesquisa utilisando o componente ListView.
As colunas desta tabela (ListView) contem nomes para a identificação das informações.
Quando a janela de pesquisa abre sem nenhuma informação buscada na base de dados, a tabela (ListView) aparece sem erro nenhum. Mas, se alguma informação existir na base de dados o título desta tabela (ListView) some, e só aparece quando clicamos com o mouse.
Estou utilizando delphi 7 com o banco de dados postgres utilizando conexão atraves do componente ADOConnection, e as consultas sql atraves do componente ADOQuery.
Gostaria de saber um jeito de reverter este problema.
Segue abaixo o código que estou utilizando para preencher a ListView:
Estou chamando esta procedure no onActivate do formulario.
Os nomes das colunas das tableas estão diferentes que as da base de dados.
alguém poderia me ajudar.
E outra pergunta. Em qual evento do ADOQuery que eu trato as respostas de erro de chave estrangeira vindas do banco postgres
Obrigado mais uma vez e desculpe pela amolação
Editado por MicheusAdicionado o delimitador de código [code] [/code]. Lembre-se de utilizá-lo para melhor visualização
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.