Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DouglasP

Retornar valor + delphi e mssql

Recommended Posts

Boa noite, como disse em outro topico to fzeno um programa

e preciso fazer uma consulta no caso um count (*) em bando de dados mssql

e retornar um valor no panel.

no caso ficaria Total de contas: x (sendo x o resultado da pesquisa)

 

 

grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, isto é simples... supondo que já fez sua consulta e tem o valor do total em alguma variável armazenado, digamos que uma variável string X, basta por o seguinte código após o término da mesma:

 

panel.caption := 'Total de contas: ' + X; //Partindo da premissa que X é a variável que tem o valor do seu count armazenado.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

To fazendo a consulta assim, isso se tiver certo, ja que nao sei mecher direito com bd no delphi:

 

With ADOQuery1 do
begin

Active := False;
SQL.Clear;
SQL.Add('select count(*) from memb_info');
ExecSQL;
Close;

como declaro uma string para o resultado?

grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está quase certo... mas tem alguns ajustes a serem feitos.. o primeiro é que selects não se usa o execsql, mas o comando open. E é melhor usar o comando close ao invés do active := false; também. E outra: se der um open e logo depois um close na sua query vai perder o que ela iria te trazer. Vou ajustar seu código para mostrar a informação que precisa abaixo.

 

With ADOQuery1 do
begin
	Close;
	SQL.Clear;
	SQL.Add('select count(*) as Total from memb_info');
	Open;
	if not IsEmpty then
	   panel.caption := 'Total de contas: ' + FieldByName(Total).AsString
	else
	   panel.caption := 'Total de contas: 0';
end;

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops, erro meu... faltou por o Total entre ''.

 

panel.caption := 'Total de contas: ' + FieldByName('Total').AsString

Outra forma que poderia ser usada é esta:

 

panel.caption := 'Total de contas: ' + Fields[0].asString

No caso, o ADOQUERY1.Fields[0].asString te retornaria os valores do primeiro campo retornado na select, no caso em questão o valor do count.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao teria um jeito mais facil??

 

por exemplo.. no vb eh soh você colocar !field que retorna o valor da consulta.. nao tem como fazer isso no delphi? mas sem criar uma funçao pra isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está fazendo uma contagem de registros não é?? Não tem como saber quantos registros tem antes de realizar a consulta no BD... então, de toda forma terá que gerar uma consulta no BD... e até onde sei não há como saber quantos registros tem na tabela sem consultar isso antes de alguma forma... mesmo que vá usar um componente Table ligado ao banco ele irá pesquisar antes na base os registros da tabela associada para você ter o seu total e você será obrigado a atualizar o mesmo sempre que algum registro for incluido/excluído para ter os dados reais e atualizados.

 

E veja que os códigos que colocamos neste seu tópico não são de uma função, e sim os procedimentos para realizar a consulta e retornar o valor dela num componente da sua tela.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá

 

há ùma forma sim de saber quantos registros tem uma tabela usando a API do delphi, porém, como o chrnos já disse, é necessário realizar uma consulta mesmo, na verdade, o que é obtido é a quantidade de registros a query retornou...

 

SQLQuery1.RecordCount;

Ps.: Eu obtive esta linha no lazarus mas o delphi também tem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.