Vc nem precisaria fazer este campo lookup. Por ex: Se vc abrir o cadastro de cidade, fizer a inclusão de uma nova cidade, ao sair da tela vc ja pode atribuir ao campo ID_CIDADE, NOME_CIDADE(da sua query do cadastro de cliente) a nova cidade cadastrada. Att. Danilo User-BA <[EMAIL PROTECTED]> escreveu: Sua explanação sobre a configuração dos Flags foi por demais esclarecedora.
Vou aproveita para abusar mais um pouco :) No seu exemplo, a SQL sugere que para a tela de cadastro de clientes sempre será trazida uma cidade já cadastrada. (o que vale para os Updates e Deletes). Caso seja uma inclusão e a cidade ainda não esteja cadastrada, nesta tela disponibilizamos de clientes uma opção para abrir a tela para o cadastro da cidades. Ok! Tendo que fazer isto, você sugeriria que no cadastro de clientes deveria ter um campo fazendo um (lookup/nome da cidade) entre cidades/clientes para buscar/trazer o código da cidade? ou você sugere alguma outra adaptação em SQL para este fim? Tipo: Um Lookup em SQL? Obrigado pela aula. Luciano-User-BA. Danilo Rogério wrote: > Não entendi muito bem se COL_CHAVE também faz parte da chave primaria > da tabela DICAS(fazendo com que sua tabela tenha uma chave composta, > mas vou explicar detalhadamente, a maneira como eu trabalho > > Tabela CIDADE > ----------------------- > PK ID_CIDADE > NOME_CIDADE > > Tabela CLIENTE > ------------------------ > PK ID_CLIENTE > NOME_CLIENTE > FK ID_CIDADE > > > onde PK é Primary Key(chave Primária) e FK é Foreign Key(Chave > Estrangeira), no caso de alguem desconhecer essas notações > > Suponhamos que vamos fazer operações de inclusão, exclusão, > alteração na tabela CLIENTE, mas queremos mostrar o nome da cidade que > este cliente mora. > > SELECT A.ID_CLIENTE, A.NOME_CLIENTE, A.ID_CIDADE, B.NOME_CIDADE > FROM CLIENTE A, CIDADE B > WHERE A.ID_CIDADE = B.ID_CIDADE > > Bem, vamos aos flags. > > 1) Estamos manipulando CLIENTES, certo? Portanto apenas as colunas > referentes a tabela de clientes devem ser atualizadas, ou seja, a > coluna NOME_CIDADE é meramente demonstrativa. > > 2) Configure os providers flags do SQLDataset ou SQLQuery > ID_CLIENTE(é a chave) > pfInfUpdate = True > pfInfWhere = True > pfInfKey = True /// Porque esta coluna é a chave > pfInfHidden = False > > NOME_CLIENTE > pfInfUpdate = True > pfInfWhere = True > pfInfKey = False > pfInfHidden = False > > ID_CIDADE(note que esse campo vem da tabela CLIENTE, portanto > deve ser atualizado) > pfInfUpdate = True > pfInfWhere = True > pfInfKey = False > pfInfHidden = False > > > NOME_CIDADE(não precisa atualizar) > pfInfUpdate = False > pfInfWhere = False > pfInfKey = False > pfInfHidden = False > > 3) Neste mesmo campo NOME_CIDADE, verifique a propriedade Requerid = > False > > 4) Faça o Passo 2 e 3 no ClientDataSet também > > 5) No DataSetProvider, em Update Mode coloque Where KeyOnly(Você > muda para update mode porque setamos o flag pfInfKey para True) > > 6) Se quiser ajudar o DataSerProvider mais um pouco, pode colocar a > instrução abaixo no EVENTO onGetTableName: > Table_Name := 'CLIENTE'; > > Espero ter esclarecido. E dúvidas, postem aí... > Danilo Rogério > Betta Informática > > User-BA <[EMAIL PROTECTED]> escreveu: > > > > Olá! > > Me esclareçam... > > Tenho 2 tabelas -> DICAS e -> COLABORADORES > > Em -> DICAS tenho o campo chave primaria -> DIC_CHAVE > e o campo chave estrangeira -> COL_CHAVE > (COL_CHAVE é a chave primária de -> COLABORADOR) > > Neste caso, devo configurar no ClientDataSet -> ProviderFlags > > PfInUpdade = True > PfInWhere = True > PfInKey = True > PfInHiden = False > > Da tabela -> DICAS > para os campos -> DIC_CHAVE > (chave primaria de DICAS) > e COL_CHAVE > (chave estrangeira de -> DICAS e chave primária de -> COLABORADOR)? > > ... > > Ou qual a configuração correta neste caso? > > Os outros campos de -> DICAS devem ficar: > > PfInUpdade = True > PfInWhere = True > PfInKey = False > PfInHiden = False ? > > Aproveitando: > > Devo setar UpDateMode para -> upWhereAll? > > > > > > > _______________________________________________________ > Yahoo! Acesso Grátis: Internet rápida e grátis. > Instale o discador agora! > http://br.acesso.yahoo.com/ > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > > > Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE > var lrec_target="_blank";var lrec_URL=new Array(); > lrec_URL[1]="http://br.rd.yahoo.com/SIG=12fh5qtu6/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111264:HM/Y=BR/EXP=1132804784/A=2950750/R=0/id=flashurl/SIG=10tift5qr/*http://br.movies.yahoo.com/"; > > var > lrec_flashfile="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0901_lrec_cinema_calendario.swf?clickTAG=javascript:LRECopenWindow(1) > > <http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0901_lrec_cinema_calendario.swf?clickTAG=javascript:LRECopenWindow%281%29>"; > > var > lrec_altURL="http://br.rd.yahoo.com/SIG=12fh5qtu6/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111264:HM/Y=BR/EXP=1132804784/A=2950750/R=1/id=altimg/SIG=10tift5qr/*http://br.movies.yahoo.com/"; > > var > lrec_altimg="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0829_lrec_cinema_calendario.gif"; > > var lrec_width=300;var lrec_height=250; > > --------------------------------- > Links do Yahoo! Grupos > > Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/delphi-br/ > > Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED] > > O uso que você faz do Yahoo! Grupos está sujeito aos Termos do > Serviço do Yahoo!. > > > > > > --------------------------------- > Yahoo! Acesso Grátis: Internet rápida e grátis. > Instale o discador agora! > > [As partes desta mensagem que não continham texto foram removidas] > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > > > *Yahoo! Grupos, um serviço oferecido por:* > PUBLICIDADE > > > ------------------------------------------------------------------------ > *Links do Yahoo! Grupos* > > * Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/delphi-br/ > > * Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do > Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>. > > -- ---------------------------------------------------------------- * D7/Firebird/DbExpress-SQLDataSet+DataSetProvider+ClientDataSet ---------------------------------------------------------------- Valeu pelas forças. Obrigado. Luciano-User-BA _______________________________________________________ Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com/ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE var lrec_target="_blank";var lrec_URL=new Array(); lrec_URL[1]="http://br.rd.yahoo.com/SIG=12f3q81cp/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111264:HM/Y=BR/EXP=1132810167/A=2950750/R=0/id=flashurl/SIG=10tift5qr/*http://br.movies.yahoo.com/"; var lrec_flashfile="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0901_lrec_cinema_calendario.swf?clickTAG=javascript:LRECopenWindow(1)"; var lrec_altURL="http://br.rd.yahoo.com/SIG=12f3q81cp/M=365837.7000707.7924794.2369893/D=brclubs/S=2137111264:HM/Y=BR/EXP=1132810167/A=2950750/R=1/id=altimg/SIG=10tift5qr/*http://br.movies.yahoo.com/"; var lrec_altimg="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/0829_lrec_cinema_calendario.gif"; var lrec_width=300;var lrec_height=250; --------------------------------- Links do Yahoo! Grupos Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. --------------------------------- Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora! [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html