Disculpa por lo de la explicacion, tienes razon. Mi base de datos está en firebird. uso delphi 7 y los componentes MDO para conectarme.
La insercion de los datos la hago mediante un query, con el siguiente código:
Código Delphi
[-]
que_ins.SQL.Text := format('insert into %s',[tabla])+''+'('+textosql+'';
que_ins.ParamByName('cve').AsInteger := StrToInt(Edit1.Text);
que_ins.ParamByName('mat').AsInteger := StrToInt(Edit2.text);
que_ins.ParamByName('nombre').AsString := edit3.Text;
que_ins.ParamByName('status').AsString := ComboBox1.Text;
que_ins.ParamByName('contrato').AsString := ComboBox2.Text;
que_ins.ParamByName('perfil').AsString := ComboBox12.Text;
que_ins.ParamByName('sni').AsString := ComboBox13.Text;
que_ins.ParamByName('Fechaper').AsDate := Fechaper.Date;
que_ins.ParamByName('Fechsni').AsDate := Fechasni.Date;
el combobox12 ycombobox13 (que tienen como opciones "si" y "no") son los que definen si la fecha sera vacia o no.
la unica forma en que he logrado que inserte la fecha vacia es guardando 4 cadenas distintas dentro de la variable "textosql", y con un case seleccionar el valor que tomara textosql segun las opciones elegidas. Pero quiero hacerlo de forma mas "limpia" y optimizada.
gracias otra vez