Hace un par de años los comparé a ambos y decidí ir con Soci para un proyecto utilizando un Sql Server ODBC y Sqlite back-end. En aquel entonces, tanto Soci como OTL parecían mantenerse activamente, pero Soci tenía una interfaz más agradable. No he usado OTL desde entonces, pero he usado mucho Soci en un proyecto de tamaño mediano.
Tuve un par de problemas inesperados con Soci, como limitaciones en la longitud de las cadenas (versión 3.0 de 2008). El principal problema con Soci es que no se mantiene muy activamente. No hubo actualizaciones entre 2008 y 2011, así que a lo largo de los años he tenido que escribir soluciones, arreglar el código yo mismo o usar material experimental del repositorio. Debido a esta falta de actualizaciones, he considerado mudarme a OTL pero todavía no he dado el salto. Prefiero la pulcritud de Soci sobre OTL, pero mantener el código activamente es más importante a largo plazo.
Todavía no he probado el nuevo lanzamiento de Soci (11/10/2011), pero estaría encantado de haber resuelto algunos de mis números anteriores. Soci es una gran biblioteca db y me gustaría recibir más amor y atención.
Así que, en resumen. OTL puede ser una apuesta más segura ya que parece estar más actualizada (pero no la he usado, así que no puedo asegurarlo). Soci es "más agradable" si tu gusto es como el mío y es perfectamente utilizable. Definitivamente lo usaría de nuevo para un proyecto pequeño, pero quizás no para un gran proyecto debido al mantenimiento limitado.
EDIT: Acabo de probar el nuevo lanzamiento de Soci 3.1 y han solucionado los problemas con cadenas largas en el back-end odbc. Creo que me quedaré con Soci por un tiempo más.
¿Estás seguro de que SOCI es una opción para ti? No vi un controlador MSSQL en su página – lurscher