Fórum Tipo de consulta ou bd #240542
30/06/2004
0
abro uma janela para consulta e no boto o seguinte codigo:
procedure TForm4.Button1Click(Sender: TObject);
begin
try
Screen.Cursor:=crSQLWait;
dmimob.Qdormi.Close;
dmimob.Qdormi.ParamByName(´d11´).Asstring:=Edit1.Text;
dmimob.Qdormi.ParamByName(´d22´).Asstring:=Edit2.text;
if not (dmimob.Qdormi.Prepared) then
dmimob.Qdormi.Prepare;
dmimob.Qdormi.Open;
finally
Screen.Cursor:=crDefault;
end;
end;
e dentro do edit sql da query:
select * from IMOVEIS where DORMI BETWEEN :d11 and :d22
eu queria uma consulta q apareceçe os resultados e quando clicasse em algum resultado a tela de cadastro apareceria com as informações do resultado clicado.
obrigado
Demetriusdgs
Curtir tópico
+ 0Posts
30/06/2004
Tnaires
Digamos que vc tem duas telas de cadastro e consulta de uma tabela ,a saber:
Tabela
-------
ID
Campo1
Na sua tela de cadastro, ao invés de um table, use um query para cadastrar os dados (o query precisa conter apenas uma tabela. Para gravar em mais de uma, é necessário usar a cláusula INNER JOIN para relacioná-las, mas vc não pode excluir dados diretamente pelo método Delete. Se só tiver uma, pode), com o seguinte SQL:
SELECT ID, Campo1 FROM Tabela WHERE ID = :ID
Na sua tela de cadastro, abra o query e vc pode inserir e excluir dados a vontade.
Na sua tela de consulta, escreva o seguinte código no grid de consulta:
procedure TForm1.DBGrid1OnDblClick(Sender: TObject) begin if not QUERYCONSULTA.IsEmpty then with FormCadastro.QueryCadastro do begin Close; ParamByName(´ID´).AsInteger := QUERYCONSULTAID.Value; Open; FormCadastro.Show; end; end;
Assim, quando o usuário der dois cliques no grid, a janela de cadastro aparecerá no registro corrente. Pq dois cliques? Por questão de segurança. Isso garante que o registro desejado será selecionado no primeiro clique.
Finalmente, as queries da paleta ADO possibilitam gravação direta. No BDE, seria recomendável utilizar UpdateSQL para isso. Dá pra fazer com Tables também, utilizando o método locate, mas particularmente eu prefiro queries pq é mais fácil de ordenar os registros.
Abraços
Gostei + 0
30/06/2004
Tnaires
Gostei + 0
30/06/2004
Demetriusdgs
só que dentro do datamodulo. para cadastro ñ tem query só tem: dataset trasaction database e datasource. como eu faria isso daí?
obrigado
Gostei + 0
01/07/2004
Tnaires
Se não, um query d consulta terá q ser criado. Qdo for dar Show no cadstro, vc tem q passar o valor da chave para ele ativar o registro selecionado na consulta.
Gostei + 0
01/07/2004
Demetriusdgs
mas eu ñ entendi direito a sua explicação, desculpa mas sou leigo em delphi
Gostei + 0
03/07/2004
Tnaires
Explique melhor o uso dos seus componentes. Qdo vc diz dataset, vc tá querendo dizer IBDataSet?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)