consulta em uma janela e volta para a tela de cadastro

06/02/2006

0

ola galera delphiana estou uma pequena duvida sobre consulta sql..
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

Firekiller_am

Responder

Posts

06/02/2006

Aroldo Zanela

Colega,

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).


Responder

06/02/2006

Firekiller_am

[b:68e491504d]Aroldo Zanela [b] vc pode me dar um exemplo fera agradeço..

pode ser assim: adoquery.locate(´codcliente´,cod[]); ou de outra forma abraços...[/b:68e491504d]


Responder

06/02/2006

Paullsoftware

[b:6bb6951869]Aroldo Zanela [b] vc pode me dar um exemplo fera agradeço.. pode ser assim: adoquery.locate(´codcliente´,cod[]); ou de outra forma abraços...[/b:6bb6951869]


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!


Responder

06/02/2006

Firekiller_am

esquecie a vrigula hehhe

mais obrigado pela dica vou testar e posto se funcionou....


Responder

06/02/2006

Firekiller_am

valeu pela dica pessoal funcionou..

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;


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar