Valeu Danilo. Tenho uma outra dúvida:
Quando crio os fieldslookup, no momento que associo um grid ao datasource, automaticamente tenho o campo mostrado na no fieldlookup. Da forma que vc que vc sugeriu, como vc faz para aparecer os dados do lookupcombobox no grid? grato, Luis Alberto. --- Danilo Rogério <[EMAIL PROTECTED]> escreveu: > Luis, desde que deixei de trabalhar com paradox, não > uso mais campos fklookup. > > Esse erro que vc mencionou eu desconheço, mas > imagino que este erro que vc está tendo esse erro, > porque seu LookupComboBox está ligado a um > lookupField(eu nunca liguei combobox em campo > fklookup). > > Tente não criar este lookupfield, e simplesmente > ligar o lookupcombobox a um clientdataset separado, > e certifique-se que a query + datasetprovider + > clientdataset estão ligados corretamente. > > Lembro-me que o Lichot falou uma vez, que sempre > que possível deixe a tabela que sofrerá > alterações(insert, update,delete) o mais simples > possível(evitando muitos joins). Assim vc ganha em > processamento de atualização, e evita, por exemplo a > necessidade de sempre mexer muito nos providers > flags. > > A não ser que vc seja o único programador, pois > imagine uma equipe de 5 programadores, e por ventura > um deles vai, remove o campo e adiciona de novo... o > provider foi perdido, e quando for para a produção > vai dar PAU.... e se for um fim de semana, então, ou > seu cliente for de outra cidade... Você está pego... > > Att. > Danilo > > Luis Lopes <[EMAIL PROTECTED]> escreveu: > Danilo, > > Pegando um gancho na discursão de vocês... > > Num cadastro de clientes, onde tenho que informar > qual > a cidade, como no seu exemplo, qual é a melhor forma > de trabalhar? > > Eu sempre trabalhei criando um campo lookup > (fkLookup) > no clientdataset (cliente, no caso do seu exemplo) e > na tela, coloco um DBLookupComboBox apontando para o > field lookup que criei. Essa é a melhor forma? > > Outra coisa: (ainda seguindo o seu exemplo) quando > vou > gravar o cliente, e dá algum erro na gravação (um > campo required que não informei, por exemplo), > quando > tento escolher a cidade, novamente (depois do erro), > no DBLookupComboBox, aparece a mensagem 'Cursor > Unknow'. Tento novamente mais umas 2 ou 3 vezes e > passa. Procurei na net e as sugestões que encontrei > não resolveu o problema. > > Poderia me ajudar com isso? > > Abusando mais um pouco, outro erro que acontece > muito > e, apesar de eu estar conseguindo resolver, eu ainda > não sei direito o que causa, é o 'invalid point > operation' > > Sabe alguma coisa sobre isso? > > Agradeço muito qualquer ajuda. > > Luis Alberto. > > > --- Danilo Rogério <[EMAIL PROTECTED]> > escreveu: > > > 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 = > === message truncated === _______________________________________________________ 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 >>>>> <*> 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