Ver Mensaje Individual
  #5  
Antiguo 08-05-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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

Última edición por roman fecha: 08-05-2003 a las 05:29:09.
Responder Con Cita