Je, je. Bueno, pues no sé qué contestar.
Durante mucho tiempo he utilizado controles dbAware sin mayores problemas aunque siempre ha habido "algo" que no termina de gustarme: me siento en medio de una jungla de eventos que se disparan en los momentos más insospechados.
En los últimos tiempos he estado trabajando en un sistema de control escolar utilizando Paradox y harto ya (de Paradox) y dado que hemos empezado a trabajar procesos vía Internet he optado por cambiar a MySql. Acabamos de efectuar con éxito nuestras primeras inscripciones en línea y aunque no se trató de procesos muy complejos, lo cierto es que me sentí muy a gusto trabajando con PHP y MySql y no extrañé para nada los controles dbAware. Es sencillamente otra forma de trabajar; no necesariamente mejor o peor, sino todo lo contrario
Actualmente estoy en proceso de migrar todo el sistema de Paradox a MySql y planeo realizar todos los módulos de uso interno con Delphi. Cuando busqué opciones para acceder a MySql desde Delphi ví, desde luego, dbExpress y Zeos pero, habiendo ya programado PHP-MySql me di cuenta que al igual que con PHP no es nada difícil programar directamente con la API de C-MySql y preferí esta opción pues me daba un acceso directo (recordemos que cualquier a acceso a MySql en Windows se hace, a fin de cuentas, a través de libmysql.dll)
Siendo además que varias partes del sistema tendrán acceso ya sea por Internet o desde una aplicación en Delphi, el paralelismo entre el Api de PHP-MySql y el de C-MySql me hace muy sencillo escribir para uno habiendo escrito el otro.
Claro que tampoco soy tan necio y no pretendo estar escribiendo
Código:
conn := mysql_init(nil);
if conn = nil then
raise Exception.Create('Error');
if mysql_real_connect(conn, host, user, passwd, db, 0, nil, 0) = nil then
raise Exception.Create('Otro error');
if mysql_query(conn, sqlstring) <> 0 then
raise Exception.Create('Qué creen: error!');
rows := mysql_store_result(conn);
{ otras comprobaciones }
row := mysql_fetch_row(rows);
while row <> nil do
begin
{ Hacer algo con row }
row := mysql_fetch_row(rows);
end;
para cada simple consulta, sino que pretendo diseñar un conjunto de clases (interfaces de hecho) que se encarguen de las partes pesadas.
Así que, cuando termine estaré en mejor posición para votar
// Saludos