The TJX Companies has disclosed that at least 45.7m of its customer records were stolen from databases in 2005 and 2006, but said that nearly three-quarters of them couldn't be used by the hackers.