Fórum Todos os resultados de uma query em um memo como no msDOS #352364
23/01/2008
0
Por exemplo:
Estou fazendo uma aplicação e qndo o cara aperta ctrl+alt+F11 abre uma janela com um edit e um memo, ai o cara só escreve no edit os comandos sql e no memo eu quero que apareça igual foce pelo DOS, é possivel?
(Eu tratei a primeira palavra que sai do edit para saber se é uma consulta ou uma excução que a query vai fazer (qry.open ou qry.exec) pelas 6 primeiras letras (que já serve para os principais ( Delete, insert, update (6 letras));
detalhe importante: Não consigo fazer as strings que eu add no memo (memo1.lines.add) aparecerem no memo de baixo para cima, e não de cima para baixo como vem de padrão. ALguem sabe isso tambem?
Guilherme.camargo
Curtir tópico
+ 0Posts
23/01/2008
Edilcimar
Gostei + 0
24/01/2008
Guilherme.camargo
procedure TfrmSQL.FormKeyPress(Sender: TObject; var Key: Char);
var comando, Scomando: string;
i: integer;
begin
if key = #13 then
begin
Memo1.Lines.Add(Edit1.text);
Scomando:= Edit1.Text;
Edit1.Text:= ´´;
comando:= copy(Scomando, 0, 6);
with dmDados.qryDataVida do
begin
close;
sql.clear;
sql.add(Scomando);
end;
if ((comando = ´update´ or comando = ´delete´) or comando = ´insert´) then
dmDados.qryDataVida.ExecSQL
else
dmDados.qryDataVida.Open;
end;
// AQUI SERIA A PERTE EM QUE EU COLETO TUDO O QUE A QUERY RETORNO E JOGO NO MEMO, IGUAL COMO APARECE POR EXEMPLO NO DOS QUANDO EU FAÇO UM SELECT, UM DESCRIBE SEI LAH, QUALQUER COISA.
end;
Obrigado!
Gostei + 0
24/01/2008
Paullsoftware
eu creio que você pode fazer um laço while not eof para varrer a query e jogar os campos dentro da query mais ou menos assim..:
procedure TfrmSQL.FormKeyPress(Sender: TObject; var Key: Char); var comando, Scomando: string; i: integer; begin if key = #13 then begin Memo1.Lines.Add(Edit1.text); Scomando:= Edit1.Text; Edit1.Text:= ´´; comando:= copy(Scomando, 0, 6); with dmDados.qryDataVida do begin close; sql.clear; sql.add(Scomando); end; if ((comando = ´update´ or comando = ´delete´) or comando = ´insert´) then dmDados.qryDataVida.ExecSQL else with dmDados do begin qryDataVida.Open; First; I := 0; while not qryDataVida.Eof do begin (* Aqui você faz um for para inserir todos os campos da Query dentro do Memo com a Estrutura Nome_do_Campo: Dados do Campo *) for i := 0 qryDataVida.FieldsCount-1 do Memo1.Lines.Add(qryDataVida.Fields[i].FieldName + ´: ´+qryDataVida.Fields[i].AsString + ´ | ´); (* se você quizer somente os dados do campo, sem o nome do mesmo, basta eliminar a primeira parte da linha no add... *) // Memo1.Lines.Add(qryDataVida.Fields[i].AsString + ´ | ´); QryDataVida.Next; end; end;
pelo que entedi era mais ou menos isso que vc quer, espero ter ajudado :wink:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)