Ir para conteúdo
Fórum Script Brasil
  • 0

Dbmemo Não Visualiza....


Guest José Da Silva

Pergunta

Guest José Da Silva

Caros Amigos,

A pergunta que se segue pode parecer despropositada, mas já li em tudo o que podia e não consigo uma solução.

Estou usando DBExpress para aceder ao meu MySQL e ate aí tudo bem. Consigo fazer updates, etc., mas quando se trata de visualizar no DBMemo o resultado do Query (ex: SELECT * FROM gratificados), as coisas ficam pretas. Gostaria de visualiza todos os campos da tabela , neste caso "gratificados", no meu DBmemo. No meu procedure TForm1.BitBtn1Click(Sender: TObject); tenho -

SQLQuery1.Active := False;

SQLQuery1.SQL.Clear;

SQLQuery1.SQL.Add(''+DBBox1.Text+''); //aqui no DBBox tenho "SELECT * FROM gratificados"

SQLQuery1.ExecSQL;

Agora como visualizar o resultado todo no DBMemo? Estou usando Delphi7 e estou começando no DELPHI

está difícil... mas na desisto.

Pode ser que a solução tenha já sido postada aqui, mas li bastante e na encontrei...

Abraço a todos

José

Maputo - maiorçambique

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Alo Fernando,

Feliz por te conhecer.

O tópico estava bom mas, correndo o risco de ser irritante, não me ajudou por completo. Como faço para passar todo o resultado para o meu DBMemo? Da para ajudar?

Fica bem

Jose

Maputo- maiorçambique

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite Fernando.

Este link que me mandastes é igual ao outro. Basta eu saber como visualizar toda a informação da tabela (MySQL), para o meu DBMemo (ou outro qualquer), apanho o algoritmo e a ideia....

Fica bem companheiro

Jose

Maputo , maiorçambique

Link para o comentário
Compartilhar em outros sites

  • 0
Consigo fazer updates, etc., mas quando se trata de visualizar no DBMemo o resultado do Query (ex: SELECT * FROM gratificados), as coisas ficam pretas. Gostaria de visualiza todos os campos da tabela , neste caso "gratificados", no meu DBmemo. No meu procedure TForm1.BitBtn1Click(Sender: TObject); tenho -

SQLQuery1.Active := False;

SQLQuery1.SQL.Clear;

SQLQuery1.SQL.Add(''+DBBox1.Text+''); //aqui no DBBox tenho "SELECT * FROM gratificados"

SQLQuery1.ExecSQL;

Agora como visualizar o resultado todo no DBMemo?

Jose, apena um comentário: você não poderá utilizar ExecSQL para retornar linas de um SELECT, neste caso tem que utilizar Open; Do help sobre ExecSQL:

"To execute a query at runtime, use one of the following methods:

- Open executes a query that returns a result set, such as SELECT.

- ExecSQL executes a query that does not return a result set, such as INSERT, UPDATE, or DELETE.

Note: If you do not know at design time whether a query will return a result set at run time, code both types of query execution statements in a try...except block. Put a call to the Open method in the try clause, and put the ExecSQL method in the except clause. To avoid executing a statement twice (for example, in the case of an empty result set), check for an exception of type ENoResultSet before executing the ExecSQL method in the except clause."

você irá colocar, para cada linha retornada, os campos um após o outro? Posso perguntar porque colocá-lo em um DBMemo?

Vou exemplificar esta forma que entendi, utilizando um TMemo e utilizando a dica do help. Caso você utilize um DBMemo para armazenar o resultado em uma tabela, o correto seria utilizar o nome do campo associado a ele, ao invés de utilizar a propriedade Lines.

procedure TForm1.Button4Click(Sender: TObject);
var
  Idx :Integer;
  Resultado :string;
begin
  try
    SQLQuery1.Open;  // executa comandos SELECT
    Memo1.Lines.Clear;
    while not SQLQuery1.EOF do
    begin
      for Idx := 0 to SQLQuery1.FieldCount -1 do
        Resultado := Resultado +', ' +SQLQuery1.Fields[Idx].AsString;
      Memo1.Lines.Add(Resultado);
      SQLQuery1.Next;
    end;
    SQLQuery1.Close;
  excep
    SQLQuery1.ExecSQL;  // executa comandos UPDATE, DELETE, ...
    ...
  end;
end;

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Noite Micheus,

Quero agradecer o seu auxilio e, desde já sauda-lo pela forma desinteressada como me ajudou. Entendi a explicação e de facto você tem razão. Funcionou!!!

Gostaria, sem querer tornar-me uma espécie "grudento", poder contar com suas futuras colaborações. Se puder envie-me o seu email para jxfdasilva@yahoo.com

Fica bem companheiro.

José

Mozambique

P.S. isto não significa que irei abandonar o Fórum, pelo contrario...

Link para o comentário
Compartilhar em outros sites

  • 0
Quero agradecer o seu auxilio e, desde já sauda-lo pela forma desinteressada como me ajudou. Entendi a explicação e de facto você tem razão. Funcionou!!!
Que bom.

...

P.S. isto não significa que irei abandonar o Fórum, pelo contrario...

prefiro esta opção por esses motivos:

- não fico na obrigação de responder - já verifico meu e-mail poucas vezes por semana;

- há outros colegas aqui que poderão lhe ajudar;

- e outros colegas poderão aprender com suas dúvidas.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Caro Micheus,

Entendo a sua posição e respeito-a. Espero que não me tenha entendido mal e, se assim for, os meus pedidos de desculpa a todo os amigos do Forum e a si em especial. Claro que irei continuar a participar e, com ajuda de todos e a minha inclusive, contribuir para a comunidade Delphiana. Um bem-haja a todos.

Aquele abraço

De África

Maputo, Mozambique

Link para o comentário
Compartilhar em outros sites

  • 0

Viva Amigos,

Gostaria de deixar a minha primeira contribuição - pode ser que já tenha havido - mas, como custou-me muitas horas de leitura, aqui vai....

Para obter uma saída ordenada , arranjei uma pequena solução. Pode ate não ser a melhor ou mais vistosa, mas funcionou em pleno. Aqui vai o exemplo:

//Resultado := Resultado +' ' +SQLQuery1.Fields[idx].AsString+ ' ';

Resultado := SQLQuery1.FieldByName('Numero').AsString + ' ';

{ Repete para todos os campos que quisermos. }

Resultado := Resultado + SQLQuery1.FieldByName('Hora_In').AsString + ' ';

Resultado := Resultado + SQLQuery1.FieldByName('Hora_Out').AsString + ' ';

Resultado := Resultado + SQLQuery1.FieldByName('Data').AsString + ' ';

Resultado := Resultado + SQLQuery1.FieldByName('Instituicao').AsString + ' ';

Resultado := Resultado+ SQLQuery1.FieldByName('Pagamento').AsString + ' ';

Resultado := Resultado + SQLQuery1.FieldByName('Nome').AsString;

//O resto fica tudo igual

Espero desta forma ter contribuído, para mitigar algumas dificuldade para os novatos como eu em Delphi.

Aquele abraço companheiros

José

Mozambique

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...