Maneju 0 Denunciar post Postado Maio 27, 2014 Bom dia! Estou começando a migrar os programas procedurais para orientação a objetos. O CRUD orientado a objetos está funcionando, porém, agora tenho dúvidas de como implementar a pesquisa por nome (uso locate com lopartialkey) que está ligado à um grid. Por enquanto, fiz esta busca procedural, minha dúvida é se tem como (acredito q sim pois vi algo parecido) fazer isto numa classe/objeto pesquisa que me retorne um dataset do que foi encontrado. Grato! Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Maio 28, 2014 Você quer criar a consulta e retornar o dataset como retorno, é isto? O componente preenchido com o resultado do comando sql? Compartilhar este post Link para o post Compartilhar em outros sites
Maneju 0 Denunciar post Postado Maio 30, 2014 Isso mesmo, era isso que eu queria. Acho que o objeto vai retornar um dataset, seria isso se entendi. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Maio 30, 2014 Vou por um exemplo que uso aqui em um dos meus códigos... dê uma olhada se é +/- isso o que precisa e, se for o caso, usamos ele de base pra discutir alterações. { SQL Server } Function ConectarSQL( var Conexao : TADOConnection; bAmbienteTeste : Boolean; mmErroProcessamento : TMemo):Boolean; var sDiretorio : String; begin try FreeAndNil(Conexao); Conexao := TADOConnection.Create(Conexao); sDiretorio := ExtractFilePath(Application.ExeName); Conexao.Connected := False; Conexao.LoginPrompt := False; if bAmbienteTeste then Conexao.ConnectionString := 'FILE NAME=' + sDiretorio + 'connteste.udl' else Conexao.ConnectionString := 'FILE NAME=' + sDiretorio + 'connprod.udl'; Conexao.Connected := True; Result := True; except on E: Exception do begin if not bAmbienteTeste then InsereMensagemMemo('***Não foi possível conectar a base de dados de produção!', mmErroProcessamento, 1) else InsereMensagemMemo('***Não foi possível conectar a base de dados de testes!', mmErroProcessamento, 1); InsereMensagemMemo(E.Message, mmErroProcessamento, 0); Result := False; end; end; end; Function PesquisaSQL( sSql: String; bAmbienteTeste: Boolean; mmErroProcessamento: TMemo ):TADOQuery; var Query: TADOQuery; begin try Query := TADOQuery.Create(Application); if bAmbienteTeste then if ConectarSQL(ConexaoTeste, bAmbienteTeste, mmErroProcessamento) then Query.Connection := ConexaoTeste else begin Result := nil; Exit; end else if ConectarSQL(ConexaoProducao, bAmbienteTeste, mmErroProcessamento) then Query.Connection := ConexaoProducao else begin Result := nil; Exit; end; with Query do begin SQL.Clear; SQL.Add(sSql); Open; end; Result := Query; except on E: Exception do begin //Insere a mensagem no memo de resumo de erros da tela InsereMensagemMemo('***Erro durante a execução do script SQL!', mmErroProcessamento, 1); InsereMensagemMemo(E.Message, mmErroProcessamento, 0); Result := nil; end; end; end; Compartilhar este post Link para o post Compartilhar em outros sites