Hola,
Estoy empezando a trabajar en migrar código basado en BDE a dbExpress. Ahora bien, el control transaccional que tengo en mi código original es 100% manual; o sea, todas las llamadas que se hacen son SQL puro. Para ser claro, lo que quiero decir es que todos los datos son capturados y desplegados sin utilizar controles como TDBEdit o similares, que estén asociados a algún TDataSet; por tanto, al momento de grabar se usan llamadas directas a SQL vía TQuery.
Por ejemplo, una rutina típica de grabación de un registro luce algo así como :
Código Delphi
[-]Procedure TdmSSWTablas.InsertarEnTablaHjMun(ADpto,AMncp,ACode,AName:String);
Begin
With SQLIngresar Do Begin
Try
Params[0].AsString:= ADpto;
Params[1].AsString:= AMncp;
Params[2].AsString:= ACode;
Params[3].AsString:= AName;
ExecSQL;
Except
On E:Exception Do Begin
raise Exception.CreateFmt(ESIE073,[ACode,AName,E.Message]);
End;
End;
End;
End;
Y por tanto, un control transaccional luce algo así como
Código Delphi
[-]begin
try
dmSistema.dbSistema.StartTransaction;
InsertarEnTablaHjMun('08','001','0017',AName);
.....
...
.
dmSistema.dbSistema.Commit;
Except
On E:Exception Do Begin
dmSistema.ProcesarErrorTransaccional(E.Message);
End;
end;
end;
Esta metodología la aplicó, entre otras cosas, para obtener portabilidad entre motores de Bases de Datos, y me ha dado excelentes resultados por lo que no planeo cambiarla.
La pregunta es : En este escenario, hay algún beneficio real en migrar a dbExpress ?. En especial, realmente se obtendrá una mejora significativa en velocidad ?
Si les extraña que pregunte cuando ya estoy migrando es porque las razones de la migración tienen un origen diferente.