compile DataReader