DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Fórum DevMedia


Autor
Mensagem
Artur de Abreu Carlos
 

País: Brasil
Estado: RJ
Cidade: rio
Mensagens: 39
 Postado em: 15/8/2010 3:12:34 PM

Eu adicionei varios LookupCombobox na minha form apartir da field do ADOQuery, a maioria deles esta ligado a uma tabela no access chamada Numeros, que contem 0,1,2,3,4,5 ect. Ou seja quando alguem clica no DBLookupCombobox em questão desce uma lista pra escolher de 1 até 9.

Essa parte funciona bem, o problema é que se você deixa um cambo em branco sem escolher uma opção de 0 a 9, da "You Cannot add or change a record because a related record id required in table".

Tentei setar os DBLookupComoBox.keyValue:= 1 fazendo eles ja deixarem o primeiro elemento que seria "0" ja pre-selecionado. Funcionou , aparece 0 em todos agora mas continua dando o mesmo erro, agindo como se não tive-se nada selecionado, tanto que se eu vou la e clico pra escolher 0 de novo manualmente não da erro.

Alguem sabe como resolver esse problema?

No momento se o usuario não marcar todos os DBLookupComoboBox com algum item da lista o cadastro retorna o erro mencionado acima.
CARLOS EDUARDO DOMINGUES MAZZI
 
 


País: Brasil
Estado: SP
Cidade: LINS
Mensagens: 591
 Postado em: 15/8/2010 5:20:07 PM
Desculpe, mas nao entendi direito ,mas esses campos puxam de uma chave estrangeira e vc esta querendo deixar um campo , chave, em branco , (ou 0 zero) é isso?

 
Artur de Abreu Carlos
 

País: Brasil
Estado: RJ
Cidade: rio
Mensagens: 39
 Postado em: 15/8/2010 7:04:06 PM
Quero que venha um um dos valores ja, tipo ja com '0',  ou então fique em branco.  O problema de ficar em branco é que da o erro que relatei acima, e quando coloquei no codigo pra setar o KeyValue:= 1 que corresponde a '0' da o mesmo erro.

O unico modo de não dar erro é eu escolher um valor para todos os elementos com DBLookupComboBox manualmente na hora do registro, não posso deixar nenhum sem escolher um valor.

 
ERILEY VILAGRANDE BARBOSA
 
 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 16/8/2010 8:40:31 AM
Faça o tratamento no beforePost da Query para verificar se o campo associado ao DBLookup está nulo, se estiver volte o foco para o campo e aborte a gravação do registro.

 
Fernando Farah
 

País: Brasil
Estado: RJ
Cidade: Rio de Janeiro
Mensagens: 27
 Postado em: 16/8/2010 9:53:48 AM

Opa !

está meio estranho, que campo é esse que vc puxa no lookup ?
se for um foreign key o erro vai persistir pq pode ser uma chave primaria de uma outra tabela, logo nao vai deixar gravar null, melhor coisa é fazer o que o ERILEY disse, teste p. ver se esse campo é vazio.

 
Wilson Lehapan Junior, vulgo Paulista...!!!
 
 
 


País: Brasil
Estado: RS
Cidade: Caxias do Sul
Mensagens: 1574
 Postado em: 16/8/2010 10:34:37 AM
ao invés de setar o KeyValue, faça ADOQuery.First, para selecionar o primeiro registro.

Espero ter colaborado.

 
Artur de Abreu Carlos
 

País: Brasil
Estado: RJ
Cidade: rio
Mensagens: 39
 Postado em: 16/8/2010 12:14:56 PM
Vlw pessoal, Resolveu quando desativei os relacionamentos do Access, eles que tavam exigindo os dados, ae dava erro quando não colocava nada.

Vo postar em um outro topico também mas to com umas duvidas aqui e vo aproveitar esse pra ja postar caso alguem saiba.
 
Duvidas:

1 - Como faço para restringir(filtrar) uma pesquisa com mais de 1 elemento em SQL no ADOQuery?

Ex: Quero pesquisar casas em X Bairro, Tipo: Casa, De Valor maximo: 100.000, Valor Minimo: 50.000 .

No Casa para ativar cada filtro teria que clicar em um Checkbox em cima da opção.

Ex: Se vc clicar no Checkbox em cima da Label "Valor Minimo" e "Bairro", a busca vai procurar e listar apenas os imoveis de Bairro X e valor Minimo Y.

Sei buscar por 1 elemento de 1 tabela, no caso uso o codigo abaixo para buscar por Bairro.

with DM.ADOQImoveis do
DM.ADOQImoveis.close;
DM.ADOQImoveis.sql.clear;
DM.ADOQImoveis.sql.add('Select * from Clientes where Bairro like :dados order by Nome');
DM.ADOQImoveis.Parameters[0].value := '%'+trim(edtpesquisar.text)+'%';
DM.ADOQImoveis.open;

A minha pergunta é, como filtrar a pesquisa por elementos especificos(Bairro, valor maximo, minimo, ect) de acordo com o Checkbox Escolhidos?

Queria filtrar em tempo de escrita(ou no change) como utilizo no codigo acima, mas um de pesquisar apenas quando clico no botão Pesquisar também ja ajudaria muito.


2- Como salvar imagens em um banco de dados, no caso uso o Access, vale a pena salvar nele? ou algum outro metodo é recomendado?

O que queria é que no programa aparece um  quadro aonde eu fosse adicionando/retirando as todos atravez de um botão as fotos ficasem pequenas em uma lista de rolagem(tipo no formato Large Icons do explorer) e quando eu desse 2 cliques nelas expandissem para a tela toda.

Se alguem puder dar uma ideia ou sugestão do que usar agradeço.

 
ERILEY VILAGRANDE BARBOSA
 
 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 16/8/2010 1:20:02 PM
with DM.ADOQImoveis do
DM.ADOQImoveis.close;
DM.ADOQImoveis.sql.clear;
DM.ADOQImoveis.sql.add('Select * from Clientes where Bairro like :dados');
if checkbox1.checked then
  if (edit1.text <> '') and (edit2.text <> '') then
  begin
     DM.ADOQImoveis.sql.add('And Valor BETWEEN :Valor1 AND :Valor2'); 
     DM.ADOQImoveis.Parameters[1].value := StrToFloat(edit1.text ); 
     DM.ADOQImoveis.Parameters[2].value := StrToFloat(edit2.text ); 
  end;
DM.ADOQImoveis.sql.add('order by Nome');
DM.ADOQImoveis.Parameters[0].value := '%'+trim(edtpesquisar.text)+'%';
DM.ADOQImoveis.open;


 
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03