12/01/2006

insert

amigos,

estou usando o seguinte codigo para dar entrada na minha tabela...

with login.consulta do
                     begin
                       office := ´TESTE´;
                       sql.Clear;
                       sql.Add(´insert into tbl_farmacias ´);
                       sql.Add(´(codigo,farmacia,email,qmicros,cidade,estado,datas,datac,voltagem,serial_office,tecnico,tecnicoat,obs,cpod,endereco,cep,bairro,cnpj,ie,rs) ´);
                       sql.Add(´VALUES ´);
                       sql.Add(´(´ + cfoc.text + ´ ,"´ + unidade.Text + ´","´ + email.Text + ´",´ + qcomp.Text + ´,"´ + cidade.Text + ´", ´);
                       sql.Add(´"´ + uf.text + ´","´ + ds.Text + ´","´ + dc.Text + ´","´ + voltagem.Text + ´", ´);
                       sql.Add(´"´ + office + ´",´ + ctecnico.text + ´,´ + ctecnicoat.Text + ´,"´ + obs.Text + ´",´ + cpod.Text + ´,"´ + endereco.Text + ´", ´);
                       sql.Add(´"´ + cep.Text + ´","´ + bairro.Text + ´","´ + cnpj.Text + ´","´ + ie.Text + ´","´ + rs.Text + ´")´);
                       execsql;


funciona perfeitamente, desde que todos os campos estejam preenchidos...se eu deixar algum campo em branco...da erro de sintaxe...o unico problema é q alguns campos nao sao obrigatorios...

utilizo banco access....

verifiquei os campos e todos estão com a propriedade requerido = não..

obrigado...


Fernando_ramos

Respostas

12/01/2006

Ildefonso

Olá, Fernando.

Você deve considerar, em situações de edição/inserção, duas propriedades para os campos no Access:[list:b942af90e5]> Requerido;
> Permitir comprimento zero.[/list:u:b942af90e5]A segunda propriedade, apenas para texto, controla se é possível um campo manter uma string vazia (algo como [b:b942af90e5]tbNome.AsString := ´´;[/b:b942af90e5] ).

Se você diz que um campo pode ser Nulo, não implica em permitir que ele tenha comprimento zero. A converção não é automática.

Você vai ter que verificar os argumentos que montam sua string SQL para colocar Null ao invés de ´´, para certos casos.

Bom trabalho... 8)


Responder Citar

12/01/2006

Fernando_ramos

amigo...obrigado vc me ajudou bastante...

consegui resolver o problema, dos campos texto e numericos....

agora..nao estou sabendo como fazer nos campos data/hora.

se puder me ajudar...agradeço!!


Responder Citar

15/01/2006

Fernando_ramos

Pessoal,
alguém pode me ajudar?

possuo dois campos di tipo DATA/HORA que em algumas situações é necessário ser inseridos em BRANCO...só que o campo nao aceita em branco...como resolver tal questão...


Responder Citar

16/01/2006

Bruno Belchior

Muitos bancos utilizam data no formado mm/dd/yyyy, não sei se é o caso do Access mas não perde por tentar...


Responder Citar

16/01/2006

Fernando_ramos

o access por padrão pega o formato da data do windows, que no meu caso esta dd/mm/yyyy. Mesmo assim ele não aceita inserir EM BRANCO.

se alguem puder me ajudar...agradeço...


Responder Citar

16/01/2006

Bruno Belchior

Pessoal, alguém pode me ajudar? possuo dois campos di tipo DATA/HORA que em algumas situações é necessário ser inseridos em BRANCO...só que o campo nao aceita em branco...como resolver tal questão...
Passe nesses campos ao invés de uma string vazia utilize Null...


Responder Citar

16/01/2006

Fernando_ramos

ja tentei...mas ele nao aceita NULL, por que não é um campo texto.....eu ja pensei em colocar o campo como texto, porém depois nao conseguirei fazer consultas por periodos de data, certo????

se alguem puder me ajudar!!!


Responder Citar

17/01/2006

Bruno Belchior

campos datas também aceitam NULL, você deve estar passando esse parâmetro como string... ou seja colocando ´Null´ em vez de Null...


Responder Citar