José Luiz Postado Julho 10, 2010 Denunciar Share Postado Julho 10, 2010 Estou tentando utilizar o Banco de Dados MySQL ( InnoDB ), porém tenho algumas dúvidas.Criei uma tabela de Clientes, que contém campos indexados por CODIGO, NOME, CEP e CPF.Em um Form, coloquei um DBGrid, acessando a tabela como Table ( não como SQL ).Como faço para trocar o índice corrente, clicando no Título como faço com o Paradox ?No Paradox, coloco no onTitleClick if Column.Field.DisplayName = 'CODIGO' then Table1.IndexFieldNames := 'CODIGO' ; if Column.Field.DisplayName = 'NOME' then Table1.IndexFieldNames := 'NOME' ; if Column.Field.DisplayName = 'CEP' then Table1.IndexFieldNames := 'CEP' ; if Column.Field.DisplayName = 'CPF' then Table1.IndexFieldNames := 'CPF' ; DBGrid1.SetFocus;Com este procedimento simples, troco o índice que está sendo utilizado e permaneço no mesmo registro que estava anteriormente.Não sei como alterar o índice no MySQL.Obrigado,José Luiz Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 11, 2010 Denunciar Share Postado Julho 11, 2010 Que componentes voce esta usando para acessar a tabela ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 José Luiz Postado Julho 11, 2010 Autor Denunciar Share Postado Julho 11, 2010 Delphi 7 com Zeos, utilizandoTZConnection, TZTable e TDataSource.Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 11, 2010 Denunciar Share Postado Julho 11, 2010 exemplo usando o ZTable:procedure TForm1.Button1Click(Sender: TObject); begin // o campo da tabela deve estar indexado ZTable1.IndexFieldNames := 'EMPRESA'; end;se voce for usar o onTitleClick do DBgrid já é um pouco diferente, e o ideal seria usar o ZQueryabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 José Luiz Postado Julho 12, 2010 Autor Denunciar Share Postado Julho 12, 2010 Coloquei 4 botões, com as seguintes instruções:procedure TF_INICIO.BitBtn1Click(Sender: TObject); begin pessoas.IndexFieldNames := 'id'; end; procedure TF_INICIO.BitBtn2Click(Sender: TObject); begin pessoas.IndexFieldNames := 'nome'; end; procedure TF_INICIO.BitBtn3Click(Sender: TObject); begin pessoas.IndexFieldNames := 'Endereco'; end; procedure TF_INICIO.BitBtn4Click(Sender: TObject); begin pessoas.IndexFieldNames := 'CEP'; end;Quando clico nos botões não acontece nada.Quando eu abro a tabela pessoas no MySQL, os índices abrem junto ( como no paradox ), ou existe outra forma de abrir os índices ?Confirmei através do SQL-Front, e os índices existem.Obrigado,José Luiz. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 12, 2010 Denunciar Share Postado Julho 12, 2010 Mais a noite farei um teste e posto o resultado ... ok ?abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 13, 2010 Denunciar Share Postado Julho 13, 2010 Leia esse texto e utilize o componente ZQueryhttp://www.plugmasters.com.br/sys/materias...MySQL---Parte-Ihttp://www.plugmasters.com.br/sys/materias...ySQL---Parte-IIabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 José Luiz Postado Julho 14, 2010 Autor Denunciar Share Postado Julho 14, 2010 Jhonas, mais uma vez obrigado por seu interesse em ajudar.O texto realmente esclareceu algumas dúvidas que eu tinha com relação aos índices, e confirmaram o que eu imaginava que ocorria com os índices utilizando a ZQuery.Desde que o componente Zeus permite a utilização de ZTable, não deveria também utlilizar os índices nesta forma ?É essa a resposta que eu gostaria.Quando Clico no Componente ZTable, nas propriedades do Object Inspector aparece a Propriedade IndexFieldNames, mas não adianta colocar o índice, que no DBGrid, os dados não aparecem ordenados.Desculpe se eu insisto, mas não gosto de trabalhar com comandos SQL. Só vou passar a utilizá-los, se realmente não houver outra opção disponível.NovamenteObrigado,José Luiz. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 14, 2010 Denunciar Share Postado Julho 14, 2010 José Luiz ... fazendo alguns testes o ZTable deve ser usando assim:exemplo:procedure TForm1.Button1Click(Sender: TObject); begin ZTable1.IndexFieldNames := 'CODEXAME'; // campo da tabela ZTable1.SortedFields := 'CODEXAME'; end; procedure TForm1.Button2Click(Sender: TObject); begin ZTable1.IndexFieldNames := 'EXAME'; // campo da tabela ZTable1.SortedFields := 'EXAME'; end; procedure TForm1.Button3Click(Sender: TObject); begin ZTable1.IndexFieldNames := 'SETOR'; // campo da tabela ZTable1.SortedFields := 'SETOR'; end;fazendo dessa maneira os campos são ordenados e indexados, facilitando a pesquisaabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 José Luiz Postado Julho 14, 2010 Autor Denunciar Share Postado Julho 14, 2010 Perfeito.Muito Obrigado,Valeu mesmo.Não é tão rápido como no Paradox que é instantâneo, mas resolveu a minha maior dificuldade para começar com o MySQL.Abraços,José Luiz. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
José Luiz
Estou tentando utilizar o Banco de Dados MySQL ( InnoDB ), porém tenho algumas dúvidas.
Criei uma tabela de Clientes, que contém campos indexados por CODIGO, NOME, CEP e CPF.
Em um Form, coloquei um DBGrid, acessando a tabela como Table ( não como SQL ).
Como faço para trocar o índice corrente, clicando no Título como faço com o Paradox ?
No Paradox, coloco no onTitleClick
if Column.Field.DisplayName = 'CODIGO' then Table1.IndexFieldNames := 'CODIGO' ;
if Column.Field.DisplayName = 'NOME' then Table1.IndexFieldNames := 'NOME' ;
if Column.Field.DisplayName = 'CEP' then Table1.IndexFieldNames := 'CEP' ;
if Column.Field.DisplayName = 'CPF' then Table1.IndexFieldNames := 'CPF' ;
DBGrid1.SetFocus;
Com este procedimento simples, troco o índice que está sendo utilizado e permaneço no mesmo registro que estava anteriormente.
Não sei como alterar o índice no MySQL.
Obrigado,
José Luiz
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.