Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-06-2008
aleja aleja is offline
Miembro
 
Registrado: oct 2005
Ubicación: Salta - Argentina
Posts: 48
Poder: 0
aleja Va por buen camino
Smile una pregunta sobre ztable

Hola, queria preguntar cual es la forma correcta de obtener el valor de un campo de una tabla usando ztable. Por ejemplo si quiero obtener el valor del ultimo registro pongo:

Código Delphi [-]
md.ztinformes.last;
ultimoinforme:=md.zinformes.fields[1].asinteger;

o se pone

Código Delphi [-]
md.ztinformes.last;
ultimoinforme:=md.zinformes.fieldsvalues[idinformes];

desde ya muchas gracias!!
Responder Con Cita
  #2  
Antiguo 11-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola,

Código Delphi [-]
ultimoinforme:=md.zinformes.fields[1].asinteger;
md.ztinformes.last;

Código Delphi [-]
ultimoinforme:=md.zinformes.fieldsvalues('idinformes');
md.ztinformes.last;

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 11-06-2008
aleja aleja is offline
Miembro
 
Registrado: oct 2005
Ubicación: Salta - Argentina
Posts: 48
Poder: 0
aleja Va por buen camino
Unhappy

Hola enecumene, gracias por la respuesta, podrias explicarme porque el md.ztinformes.last, va despues?
Responder Con Cita
  #4  
Antiguo 11-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por aleja Ver Mensaje
Hola enecumene, gracias por la respuesta, podrias explicarme porque el md.ztinformes.last, va despues?
Sólo por seguridad, para asegurarnos de que primero seleccionas el campo y luego vaya al último registro. A mí en particular me ha sucedido unos cuantos problemitas al hacerlo de primero.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 11-06-2008
aleja aleja is offline
Miembro
 
Registrado: oct 2005
Ubicación: Salta - Argentina
Posts: 48
Poder: 0
aleja Va por buen camino
Muchas Gracias!!!

Besos
Responder Con Cita
  #6  
Antiguo 11-06-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola aleja,
Si tu duda pasa por la diferencia entre acceder en forma directa y la indirecta pues hay que ver el código fuente de ZTable.

Yo no uso Zeos, pero intuyo que el comportamiento es análogo a cualquier otro.

No existe demasiada diferencia entre uno y otro, pero si las particularidades de como llevar la programación pueden conducirte a optar un método por sobre el otro.

Cuando uno invoca al campo en forma directa, con el índice. Lo que hace es leer indistintamente el concepto al que representa. Se lee el campo que ocupa dicha posición. Es decir que no interesa si se llama IDCliente, o Descripción. Si el indice corresponde a una posición válida haces referencia al campo que ocupa dicha posición.

Con el segundo método, lo que hacemos es buscar al campo según su nombre, o el concepto al que representa. Esto es útil cuando estamos tratando con los campos en forma independientemente del lugar que ocupa el campo. Es así que si optamos por buscar el campo según el nombre no nos interesa saber si se trata del tercero, el segundo, el centésimo...

Internamente, el uso del segundo método hace uso del primero. Puesto que al suministrar el valor, debe chechear contra el arrays de campos para encontrar dicha referencia. A ver... no sono bien... El segundo método necesariamente debe chequear con todos los campos hasta encontrar el que se desea.

¿Cual es la ventaja de uno sobre el otro? Pues, el primero es directo. El segundo es más "lento" ya que debe buscarlo.

¿Cuando conviene usar uno y cuando el otro?
Y pues... depende. Pero unos buenos motivos para usar el segundo pueden ser:
1. Cuando la estructura de la base de datos es muy volátil. Es decir, existe el riesgo de que los campos cambien de lugar, que desaparezcan algunos... en fin... cuando no podemos garantizar de que en la posición estará disponible el campo que realmente necesitamos.
2. En ocaiones, el implementar un índice no nos ayuda a la comprensión del código (y del problema mismo). En ocasiones el ver un 1, u 50, o 100 nos lleva a preguntarnos ¿De donde sale ese número? ¿qué representa? En pocas, puede reducir la capacidad de comprensión, adaptación, y mantenimiento del código.

De igual manera podemos formular puntos a favor del primero por sobre el segundo:
1. El acceso es directo, nada de ciclos, nos vamos al grano.
2. Podremos afirmar con total certeza de que el campo al que hago alusión corresponde al campo IDCliente (por ejemplo). Se que nunca va a sufrir cambios la base de datos.

Espero que quede más claro.

Sino se entiende, avisa.
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 11-06-2008
aleja aleja is offline
Miembro
 
Registrado: oct 2005
Ubicación: Salta - Argentina
Posts: 48
Poder: 0
aleja Va por buen camino
Thumbs up

Si, me quedo muy claro la diferencia, agradesco mucho que me expliques el concepto, que es exactamente lo que necesitaba. De a poco voy terminando mi programita!!!

Muchas gracias Delphius!

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pregunta sobre BDE JorgeBec Conexión con bases de datos 1 18-03-2005 15:53:02
Pregunta sobre Query silviodp Conexión con bases de datos 28 27-04-2004 23:17:57
Pregunta sobre .net VolaRe .NET 10 14-04-2004 22:09:50
pregunta sobre mysql? davidgaldo MySQL 2 01-03-2004 03:26:22
pregunta sobre Ms Sql ssaavedra MS SQL Server 1 09-01-2004 15:35:51


La franja horaria es GMT +2. Ahora son las 07:45:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi