consulta em uma janela e volta para a tela de cadastro
06/02/2006
0
e o seguinte tenho um form de cadastro frmClientes nele tenho uma query (qrclientes). ate ai tudo bem..
tenho um botao que chama o outro form (frmconsclientes)de consulta.
a consulta tambem esta funcioando corretmente o meu problema e o seguinte quando pesquiso um registro eu tenho selecionalo no grid e no evento ondlbclick e jogo para a tela de cadastro.
no paradox eu faço assim ..
var
cod:real; {CRIA UMA VARIAVEL PARA FICAR MAIS FACIL}
begin
if qrPesquisa.active then {VERIFICA SE A TABELA ESTA ABERTA}
if qrPesquisa.RecordCount>0 then {VERIFICA SE TEM REGISTRO NA TABELA}
begin
cod:=qrPesquisa.fieldbyname(´codProduto´).value; {}
dmbanco.tblProduto.findkey([cod]);
close;
end
como eu faço isso no sql server usando adoquery..
espero que todos tenham entendido e espero ajudas hehee..
abraços
Firekiller_am
Posts
06/02/2006
Aroldo Zanela
Com ADO você não possui método FindKey. Pode, mas não deve, utilizar locate, pois é altamente recomendável que use uma consulta SQL com as devidas restrições para obter um resultado que trafegue a menor quantidade de dados possível sobre um ambiente Client/Server (SQL Server).
06/02/2006
Firekiller_am
pode ser assim: adoquery.locate(´codcliente´,cod[]); ou de outra forma abraços...[/b:68e491504d]
06/02/2006
Paullsoftware
a linha acima está errada!
[b:6bb6951869]o correto seria:[/b:6bb6951869]
AdoQuery.Locate(´CodCliente´,Cod,[]);
mais se tratando de Query a melhor maneira seria usando uma pesquisa com comandos SQL tipo:
Try AdoQuery.Close; AdoQuery.Sql.Clear; AdoQuery.Sql.Add(´Select * From TbClientes Where CodCliente =:Pesquisa ´; AdoQuery.ParaByName(´Pesquisa´).AsInteger := StrToInt(EditEntrada.Text); AdoQuery.Open; Except on msg : Exection do ShowMessage(Msg.Messege); End;
espero ter ajudado!
06/02/2006
Firekiller_am
mais obrigado pela dica vou testar e posto se funcionou....
06/02/2006
Firekiller_am
ficou assim:
procedure TfrmConsClientes.DBGrid1DblClick(Sender: TObject);
var
cod:real; {CRIA UMA VARIAVEL PARA FICAR MAIS FACIL}
begin
if qrConsClientes.active then {VERIFICA SE A TABELA ESTA ABERTA}
if qrConsClientes.RecordCount>0 then {VERIFICA SE TEM REGISTRO NA TABELA}
begin
frmdm.qrClientes.Locate(´Codigo´, qrConsClientes.Fieldbyname(´Codigo´).AsInteger, []);
close;
end
end;
Clique aqui para fazer login e interagir na Comunidade :)