function DBwrite3DCrL(DATAinsert,idElabData,ListaDate,NodeNum,IDcentralina,...
    DTcatena,Ch3DCrL,CrL3D_NTC,cont3DCrL,conn)

nNodo = num2str(NodeNum);
l = ListaDate;

for ii=1:l
    idData = idElabData(ii,1);
    tablename = 'ELABDATADISP';
    if  idData == 0 % Se la data non è su DB (=0), scrivo i dati
        if Ch3DCrL(cont3DCrL) >= 4 && CrL3D_NTC(cont3DCrL) == 1 % scrivo la T
            colnames = {'UnitName','ToolNameID','NodeNum','EventDate','EventTime',...
                'XShift','YShift','ZShift','T_node','calcerr'};
            data = [DATAinsert(ii,1),DATAinsert(ii,2),DATAinsert(ii,3),...
                DATAinsert(ii,4),DATAinsert(ii,5),DATAinsert(ii,6),DATAinsert(ii,7),...
                DATAinsert(ii,8),DATAinsert(ii,9),DATAinsert(ii,10)];
        else
            colnames = {'UnitName','ToolNameID','NodeNum','EventDate','EventTime',...
                'XShift','YShift','ZShift','calcerr'};
            data = [DATAinsert(ii,1),DATAinsert(ii,2),DATAinsert(ii,3),...
                DATAinsert(ii,4),DATAinsert(ii,5),DATAinsert(ii,6),DATAinsert(ii,7),...
                DATAinsert(ii,8),DATAinsert(ii,10)];
        end
        fastinsert(conn,tablename,colnames,data);
    else % altrimenti li aggiorno  
        if Ch3DCrL(cont3DCrL) >= 4 && CrL3D_NTC(cont3DCrL) == 1 % scrivo la T
           colnames = {'XShift','YShift','ZShift','T_node','calcerr'};
           data = [DATAinsert(ii,6),DATAinsert(ii,7),DATAinsert(ii,8),...
               DATAinsert(ii,9),DATAinsert(ii,10)];
        else
            colnames = {'XShift','YShift','ZShift','calcerr'};
            data = [DATAinsert(ii,6),DATAinsert(ii,7),DATAinsert(ii,8),DATAinsert(ii,10)];
        end
        whereclause = ['WHERE UnitName = ''' IDcentralina ''' and ToolNameID = '''...
             DTcatena ''' and NodeNum = ''' nNodo ''' and EventDate = ''' ...
             cell2mat(DATAinsert(ii,4)) ''' and EventTime = ''' cell2mat(DATAinsert(ii,5)) ''' '];
        update(conn,tablename,colnames,data,whereclause)
   end
end

end