Ajua com SQLConnection/DBDrid - Fórum DevMedia
Ajua com SQLConnection/DBDrid
Como faço para que um DBGrid veja os dados de uma tabela Mysql quando estou usando SQLConnection.
Seguinte: após você configurar o SqlConnection com o driver do MySql -
criando uma nova conecção a partir da MySqlConnection e configurando a propriedade Connection name para esta nova conecção - você precisa de um componente SqlDataSet, cuja propriedade SqlConnection vai referenciar a SQLConnection que você acabou de configurar
No SqlDataSet, você vai pôr na propriedade CommandText a consulta Sql que vai trazer os dados.
Feito isso, coloque um DataSetProvider, um ClientDataSet e Um DataSource.
O DataSetProvider deve ter sua propriedade DataSet apontando para o SqlDataSet. O ClienteDataSet deve ter sua propriedade ProviderName configurada com o nome do provider. O DataSource deve ter sua propriedade DataSet referenciando o ClienteDataSet.
Aí, é só ligar o DBGrid ao DataSource e ser feliz!
Ah!, já ia esquecendo...você quer só fazer consulta nesse DBGrid ou vai usá-lo para editar?
Se for só consulta, é melhor substituir o SQLDataset por uma SQLQuery, que é mais apropriado pra isso (apesar do SQLDataset funcionar numa boa).
Se for editar, não faça consultas com junções que dá um rabo desgraçado...eu tentei e não funcionou...se for inserir ou editar dados, use o SqlDataSet com uma consulta que retorna só uma tabela, do tipo select * from tabela where...
Assim funciona legal na hora de dar Post e ApplyUpdates no ClientDataSet
Bom, espero que tenha ajudado em alguma coisa. Té mais!
:arrow: Não tem problema algum trazer dados de mais de uma tabela (Unions) e, em seguida, editar ou salvar os registros, uma vez q basta configurar corretamente a propriedade ´UpdateMode´ do DataSetProvider, assim como configurar a propriedade ´ProviderFlags´ de cada field do ClientDataSet e do SqlDataSet;
Tá, mas quais são as combinações entre UpdateMode e ProviderFlags que permite inserir e alterar dados em um ClientDataSet que contém dados vindos de uma junção de tabelas?
Eu tentei várias combinações e nenhuma delas deu certo. Se você puder detalhar mais a combinação que você usa pra alterar e incluir dados em junções vai me ajudar bastante!