Pat 0 Denunciar post Postado Outubro 18, 2006 OI gente.... É o seguinte...Estou utilizando o Delphi 7(DBExpress) e o mysql 5.0 para controlar alguns registros.. Preciso relacionar tabelas, sendo q qdo chamo o registro em uma, vários dados relacionados a ela devem aparecer em outra tabela...Alguém pode me ajudar? :wacko: Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Outubro 18, 2006 Usa MasterSource...onde uma tabela é a pai, e outra é a filha...na filha você vai e coloca como master source a tabela pai, e no master fields você escolhe os campos pelos quais as tabelas se relacionam...té mais!!! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 18, 2006 você pode usar mestre/detalhe para isto, é claro que deve de haver vinculos entre estas tabelas, possibilitando assim, no momento que parar sobre um registro, posiciona nos demais no mesmo registro.Eu e Hugo Slepicka praticamente no mesmo tempo... :D :D Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Outubro 18, 2006 OI Hugo..Eu tenho a tbpassagem_de_carga e a tbconsumo..Cada vez que eu entro com um novo id_passagem vários materiais devem aparecer na consumo(minério, carvão), ou seja, um dado para vários....E aí? Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Outubro 18, 2006 passagem é a pai, e consumo é a filha...na table da passagem você configura as seguintes propriedades...Master Source : Aqui você seleciona o nome da tabela, no caso PassagemMaster Fields : Aqui você seleciona qual campo da tabela se relaciona, clica em add e da ok...no caso id_passagem... Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Outubro 18, 2006 Foi mal, mas qdo eu clico em masterfield dá o seguinte erro:'Missing mastersource or datasource'.. http://forum.imasters.com.br/public/style_emoticons/default/cry.gif Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Outubro 18, 2006 isso é pq você ñ colocou nada no master source...ñ tem uma setinha pra baixo???clica nela, e seleciona o datasource da tabela que você quer, no caso a tabela de passagem...ai sim você vai no masterfields e configura o resto... Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Outubro 18, 2006 Oi Hugo...Valeu! Só mais uma pergunta.. No mysql eu tenho q fazer alguma ligação entre o id_passagem_carga(passagem_carga) e o id_passagem_carga(consumo)? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 18, 2006 No BD não é necessário ligação direta, somente interessante existir a chave extrangeira e primária, garantindo assim a integridade do BD. Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Outubro 18, 2006 Exatamente como o Márcio disse...fazendo isso e assegurando a gravação das chaves ñ precisa faer ligação no bd não!!!Precisando...estamos aqui!!! Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Outubro 18, 2006 oi Hugo... Deixa eu t perguntar..Qdo eu clico em um tbitbtn para inserir um material na tabela consumo(usando o dbcombobox) aparece o seguinte erro:edbclient with message'field value required'. Será q é o dbcombobox que não está registrando os valores? Se for, você sabe como resolver? Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Outubro 18, 2006 você preencheu o Data Source e o data field??? no data source você põe em q tabela deseja gravar, e no datafield o campo que você quer gravar, esse erro é pq ele ñ ta passando valor pra um campo que precisa ser preenchido!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Outubro 18, 2006 coloquei tdo isso. O q acontece é q qdo é selecionado um item do dbcombobox, esse item deve aparecer imediatamente no dbgrid.. Qdo eu clico p/ inserir dá esse erro... Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 18, 2006 Pela mensagem de erro, provavelmente esta tentando salvar antes de ter preenchido os campos que são obrigatórios, ai o BD reporta o erro de campo não preenchido por ser obrigatório... Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Outubro 18, 2006 Esse erro só da nos forms ond eu tenho o dbcombobox... Será q falta algum evento p/ o combobox? :rolleyes: Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Outubro 18, 2006 Pat, transforma o form em texto, View Form as Text, e manda o código do objeto que você acha que está dando problema, no caso esse combobox...mas parece então que eles não estão gravando....o campo é allow null false???? Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Outubro 18, 2006 object CBescoria: TDBComboBox Left = 252 Top = 57 Width = 103 Height = 21 CharCase = ecUpperCase DataField = 'ESCORIA' DataSource = DM.dsProducao Font.Charset = ANSI_CHARSET Font.Color = clBlack Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] ItemHeight = 13 Items.Strings = ( 'BRANCA' 'CINZA' 'CINZA CLARO' 'CINZA ESCURO' 'PRETA' 'VERDE' 'VERDE CLARO' 'VERDE ESCURO') ParentFont = False TabOrder = 2 OnKeyPress = CBescoriaKeyPress end Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Outubro 18, 2006 Você quer gravar na tabela: Produção no campo: Escoriaos valores:'BRANCA''CINZA''CINZA CLARO''CINZA ESCURO''PRETA''VERDE''VERDE CLARO''VERDE ESCURO'isso???e ele não está gravando???ja tentou trocar esse componente e colocar um TDBEdit normal e testar???? Compartilhar este post Link para o post Compartilhar em outros sites
Pat 0 Denunciar post Postado Outubro 18, 2006 Mesmo substituindo continua a dar o erro.. Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Outubro 18, 2006 Bom, sugiro que você avalie a sua tabela, e verifique se realmente você não está esquecendo de nenhum campo!!!!Pat, no caso, passe a sua rotina, para que possamos avaliar...desde o insert até o post... Compartilhar este post Link para o post Compartilhar em outros sites