PDA

Ver la Versión Completa : Mejor forma de programar con bases de datos


PTW
23-03-2005, 11:40:33
Cuando realizas un programa de gestión que se conecta con una base de datos, utilizamos, por ejemplo, un componente ADOTable para asociarlo a una tabla y un DAtaSource que se asocia , con su propiedad DataSEt, a dicho ADOTable

Para, por ejemplo, insertar un registro en dicha tabla podemos hacerlo

1) Mediante ADOTable1.Append

2) Mediante DataSopurce1.DataSet.Append;

Mi pregunta es saber cual de las dos formas es mas elegante, mas eficaz,es mejor a la hora de programar , o si por el contrario da igual la forma de realizar dichas sentencias

Muchas gracias

Toñico
23-03-2005, 11:58:13
Hola PTW,

Yo particularmente uso para cualquier manipulación de los datos el componente ADOTable. Es mas, siempre que puedo uso ADOCommand para lanzar secuencias SQL. Reservo el componente DataSource para enlazarlo con componentes visuales como DBGrid.

Pienso que de esta forma el código queda mucho mas limpio.

Un saludo.

Lepe
23-03-2005, 12:47:10
En mi opinión, si estas en un Datamodule programando usaría ADOTable1.Append
pero si estas en un Grid enlazado a la tabla, usaría Grid.Datasource.Dataset

Si mañana ves que es imposible continuar con la tabla en el grid, y necesitas una consulta, ese código que tienes implementado, tiene menos cambios que usando directamente ADOTable.loquesea

Saludos

Neftali [Germán.Estévez]
23-03-2005, 14:20:17
1) ADOTable1.Append
2) DataSopurce1.DataSet.Append;


Mi pregunta es saber cual de las dos formas es mas elegante, mas eficaz,es mejor a la hora de programar , o si por el contrario da igual la forma de realizar dichas sentencias.
* Mas elegante: Personalmente la (1), pero supongo que va a gustos :D.
* Más eficaz:
(1) Dado que el método Append no está redefinido ni en la clase TADOTable, ni en TCustomADODataSet, al realizar ADOTable1.Append realmente está ejecutando el método de la clase TDataset.
(2) Si el DataSource1 está "ligado" al ADOTable, al ejecutar DataSource1.DataSet.Append estás ejecutando el método Append del TADOTable y en consecuencia el de TDataset.
POr lo tanto en ambos casos estás ejecutando el mismo código y por lo tanto la eficiencia de ambos es la misma.
* Mejor a la hora de programar: Creo que ambos son iguales; En el segundo podría pasar que el DataSet no estuviera asociado,con el correspondiente error de "Access Violation", pero estamos suponiendo que todo es correcto, así que son equivalente.