[firebase-br] Gravando campos em branco (null)
Fagner Araujo
fagaraujo em yahoo.com.br
Qui Jan 12 14:05:06 -03 2006
Luís,
para forçar o Delphi a enviar um campo em branco para o banco você deverá:
1 - se estiver utilizando cached update: se o campo não for editado no form, ela ira com NULL para o banco, ou vc nos objetos UpdateSQL desmarca o campo da lista de atualização.
2 - Especifica o valor do campo para NULL, utilizando a propriedade Value, isso fará qualquer mecanismo de acesso enviar um NULL para o banco;
Para deixar os campos em branco e não NULL no banco de dados você deve força-los para as condições "VAZIAS", onde ela puder ser aplicada.
Para checar o valor do campo e impedir sua alteração você poderá utilizar o evento BeforePost do seu Dataset para checar o valor do campo e impedir sua gravação. O código seria algo do tipo:
procedure TSeuForm.QuerySeuDataSetBeforePost(Sender: TObject);
begin
if (QuerySeuDataSetCAMPO.AsString = '') then
begin
ShowMessage('Campo ainda não preenchido');
Abort;
end;
// ou
if (QuerySeuDataSet.FieldByName('CAMPO').AsString = '') then
begin
ShowMessage('Campo ainda não preenchido');
Abort;
end;
// a utilização dos metodas As......... será de acordo com o tipo de dados que o campo represente, ou você pode optar pela utilização da versões Variants.
Ai fica a seu cargo .....
end;
A terceira duvida que você explicou não entendi bem o q você queria envie ele mas detalhada que tentarei lhe ajudar.
Atenciosamente,
Fagner Araújo.
Luís Cosmo <jrcosmolui em gmail.com> escreveu: Amigos da lista,
Estou desenvolvendo um sistema para controlar as tramitações dos documentos,
desde a saída até o seu retorno. O problema é que no meu form onde quero
fazer a movimentação não estou conseguindo gravar os campos, os quais são
referentes ao seu retorno...minhas dúvidas são: 1° Como faço pra gravar
alguns campos em branco do delphi para o meu banco, deixando estes para
preenchimento em futura atualização (retorno)?
2° Como eu faço pra que um registro já gravado, só possa ser movimentado
(gravado) novamente quando o campo EdDT_R (que deverá esta em branco),
esteja preenchido e que o usuário receba uma mensagem tipo "registro ainda
não retornou" ?
3° Como isso poderia ser feito no banco, através de SP ou Trigger e
como faria para executado no delphi?
(Vou dividir esse e-mail, pois não consegui mandar todo ele... em seguida o
código do botão gravar).
o iniciante agradece desde já
--
Luis JR
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
---------------------------------
Yahoo! doce lar. Faça do Yahoo! sua homepage.
Mais detalhes sobre a lista de discussão lista