Ver Mensaje Individual
  #3  
Antiguo 17-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Cita:
Empezado por Forest Ver Mensaje
Bueno, soy semi-nuevo en Delphi jaja, se oye feo... pero el caso jaja es que estaba leyendo el mini-tutorial de Caral (http://www.clubdelphi.com/foros/showthread.php?t=44763) y descubrí una forma muy distinta de trabajar a la mía, y quisiera que me dijeran cual es mejor.

Primero que nada yo he usado paradox con el database desktop del delphi 6, y Firebird con Interbase Manager Lite con turbo delphi. Digo esto para explicar como me conecté a mi BD en ambos casos.

Con Delphi 6 solo cree el alias, y en el datamodule puse componentes "Ttable" y "Tdatasource".
Con Turbo Delphi batallé un poco más y tuve que crear un ODBC y pegar ademas de los componentes "Ttable" y "Tdatasource" un componente "Tdatabase" que es con la que hice la conexión.

1. Hasta aquí, ¿es mejor esa forma de conexión o es mejor con ADOconnection? ¿qué diferencias o que utilidad tiene ADOconnection?
Por empezar, son dos tecnologías de acceso a base de datos. El uso de TTable, TQuery o cualquier componente que esté en la paleta DBE te obliga a hacer uso del BDE. De este modo estás interponiendo una "capa" más de acceso entre tu base de datos y el aplicativo.

Con ADO puedes armar una conexión con mucha facilidad y conectarse a muchas bases de datos. Necesitarás un proveedor de acceso, un ODBC. Y esta manera de acceder a tus bases de datos suele ser más "lenta" que una directa o nativa.

No se como explicarte mejor el tema... no me salen mucho las palabras.
A ver si alguien más puede ser más detallista en este aspecto.

Cita:
Empezado por Forest Ver Mensaje
Luego, yo nunca he usado Querys, de hecho mi conocimiento de SQL es bastante básico, si no es que menos que eso.
Mi forma de guardar en la base de datos es algo así:
Código Delphi [-]Datamodule.Tabla.Insert //o .Edit según se requiera insertar o editar el registro Datamodule.TablaCampo1.value:= Edit1.text; Datamodule.TablaCampo2.value:= Edit2.text; Datamodule.Tabla.Post;


A diferencia de en el tuto de Caral en el que se hace referencia a los campos (o eso creo) de la siguiente forma:

Tabla.Fields[numero].Tipo¿? ... la verdad no se, no conozco estos comandos. No se si alguien me pueda aclarar por qué se hace referencia a los campos de esa forma.
Y otra cosa, cuando yo comencé me dijeron que no usara los DBEdit y DBLabel, no se por qué, pero me lo dijo alguien con más experiencia y le hice caso, y es por eso que trabajo de esa manera en vez de accesar directamente a la BD.

Igual para mostrar algún registro primero lo localizo utilizando:Código Delphi [-]DataModule.Tabla.FindKey([valor])


y después hago lo inverso a lo que describí arriba:Código Delphi [-]Edit1.text:= Datamodule.TablaCampo1.value; Edit2.text:= Datamodule.TablaCampo2.value;
El uso de una tabla nos obliga a traer todos los registros a memoria.
A diferencia de una query solo traemos los datos necesarios.

Por el tema de que diferencia hay entre esos modos de acceder
a los campos, creo que este hilo puede ser de ayuda.

Cita:
Empezado por Forest Ver Mensaje


2. ¿Tiene alguien idea de que de malo pueda tener usar los DBEdit o DBLabel? ¿se puede corromper la BD por un mal uso de estos o algo así?

No uso los componentes data-ware por lo que mucho no diré.
Me arriesgo al decir que el problema (mejor dicho, riesgo) que corremos al
usar estos componentes es que es posible modificar el cursor y
posicionarnos en un registro distinto con el que estamos operando.
El uso de data-ware puede hacernos más fácil el realizar las operaciones
contra las tabla de nuestras bases de datos, pero puede que esa libertad
de acceder tan fácil a los datos y modificarlos puede ser contraproducente
si no se controla adecuadamente la situación.
Cita:
Empezado por Forest Ver Mensaje
3. Creen que se pueda combinar el estilo que yo uso con este otro para lo que son las Querys por ejemplo, ya que los ADOQuerys que veo en ese tutorial ahorran mucho trabajo (que yo hacía usando ciclos y cosas así x_X)
La cuestión no está en combinar, sino en saber de que modo facilitarnos
el trabajo y ofrecer al mismo tiempo los controles adecuados para
ofrecer las medidas que garanticen la integridad de información, y no olvidar el criterio de la perfomance.

De cualquier modo, no soy un buen crítico para decirte que esta bien o mal, por lo que si esta bien combinar las cosas es correcto o no, mejor dejarlo a criterio de uno. Mientras mantengas el orden en tu código está bien.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita