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 04-06-2004
carlosmoralesm carlosmoralesm is offline
Miembro
 
Registrado: feb 2004
Posts: 94
Poder: 21
carlosmoralesm Va por buen camino
como obtener el recno de una tabla access

Hola compañeros

quisiera saber como se puede obtener el numero de registro de una tabla BDE
conectada a una base de datos en access ya que al pedir el recno me manda

-1

x:= table1.recno;

resultado = -1

de antemano gracias a todos
Responder Con Cita
  #2  
Antiguo 04-06-2004
Avatar de weke
weke weke is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia
Posts: 170
Poder: 21
weke Va por buen camino
Buenas!

Yo lo he probado con query, pero supongo que la tabla también tendrá esa propiedad.
Código Delphi [-]
numero.Text:=inttostr(Query1.RecordCount);

Espero que te sirva para solucionar el problemilla.

Saludos!!!!
__________________
De lo bueno lo mejor, de lo mejor lo superior.
Responder Con Cita
  #3  
Antiguo 04-06-2004
carlosmoralesm carlosmoralesm is offline
Miembro
 
Registrado: feb 2004
Posts: 94
Poder: 21
carlosmoralesm Va por buen camino
Gracias Weke

pues ya probe con un query y me regresa el mismo -1 no se si haya algo que hacer en especial en las tablas para que regresen el numero de registro.
Responder Con Cita
  #4  
Antiguo 04-06-2004
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 22
__marcsc Va por buen camino
Creo recordar que en ADO la propiedad RecNo solo funciona con un cursor de tipo clStatic o clDynamic. Qué tipo de cursor tienes en tu tabla/query?
Responder Con Cita
  #5  
Antiguo 04-06-2004
carlosmoralesm carlosmoralesm is offline
Miembro
 
Registrado: feb 2004
Posts: 94
Poder: 21
carlosmoralesm Va por buen camino
Estoy usando BDE no ADO y eso del cusrsor mmmmm no estoy seguro

¿donde puedo checarlo?

Gracias
Responder Con Cita
  #6  
Antiguo 04-06-2004
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 22
__marcsc Va por buen camino
Hola,

perdona, supuse (erróneamente) que al usar access también utilizarías ADO. Si mal no recuerdo en BDE sólamente puedes trabajar con cursores cliente, y de hecho tampoco tendría mucho sentido en Access dado que no es un motor cliente/servidor. (lo que pasa que al conectarte a Access via ADO puedes cambiar el tipo de cursor, lo cuál haría que te funcionase o no la propiedad RecNo)

Bueno, no me enrollo más... Creo recordar que no todos los drivers, y menos los de BDE, soportan correctamente la propiedad RecNo. Simplemente podría ser que estuviese pasando eso. Te propongo una prueba. Por qué no intentas acceder a una tabla Paradox y lo pruebas? En Paradox incluso puedes posicionarte en un registro determinado asignando un valor a la propiedad RecNo.

A ver si es eso... Un saludo!
Responder Con Cita
  #7  
Antiguo 04-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Por si interesa. Acabo de hacer pruebas y es tal como dice marcsc. Con BDE no funciona (mejor sería decir, no está implementada) la propiedad RecNo pero con ADO funciona perfectamente.

// Saludos
Responder Con Cita
  #8  
Antiguo 04-06-2004
carlosmoralesm carlosmoralesm is offline
Miembro
 
Registrado: feb 2004
Posts: 94
Poder: 21
carlosmoralesm Va por buen camino
Gracias marcsc

si en paradox si funciona el problema es que se bloquean muy facilmente las tablas y pierden integridad por eso emigre a access, esperando que funcionara mejor pero ya veo algunas limitantes, ¿habra alguna otra base de datos donde funcionen bien los punteros como en paradox?

o alguna forma de saber en que registro estoy parado en la base de datos
Responder Con Cita
  #9  
Antiguo 04-06-2004
Sirkius Sirkius is offline
Miembro
 
Registrado: jun 2004
Posts: 83
Poder: 20
Sirkius Va por buen camino
Yo siempre he utilizado un campo autonumerico cuando trabajaba con access. Es lo más sencillo excepto si borras registros por enmedio, entonces se fastidia la cosa.
Responder Con Cita
  #10  
Antiguo 04-06-2004
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 22
__marcsc Va por buen camino
Hola de nuevo,

los problemas que comentas son los típicos de Paradox. Se sobrevive a ellos gracias a algunas utilidades que existen (y que imagino que conoces) . De todos modos yo prefiero Access a paradox...

Lo que no me gusta demasiado es BDE. No tienes la posibilidad de pasarte a ADO? Tampoco nos engañemos, ADO dista de ser perfecto, pero, una vez más, lo prefiero a BDE. Con Access lo he probado en alguna aplicación pequeña y no he tenido problemas.

Sobre lo de saber la posición del registro en la tabla... Pues depende de la situación. Iterando sobre la tabla te será fácil saber el número de registro. Suponiendo que la tengas enlazada a un DBGrid, también puedes hacer alguna chapuzilla para saber la fila del DBGrid en la que te encuentras y quizás pueda servirte. También puedes montarte algún tipo de SQL.

Si nos pones un poco en antecedentes quizás podamos darte alguna solución. Independientemente de esto, puedes considerar el cambio de BDE a ADO que (en mi opinión) ya es una mejora.

Saludos.

EDIT: Se me olvidaba! Roman, gracias por tu verificación empírica

Última edición por __marcsc fecha: 04-06-2004 a las 22:48:33.
Responder Con Cita
  #11  
Antiguo 04-06-2004
carlosmoralesm carlosmoralesm is offline
Miembro
 
Registrado: feb 2004
Posts: 94
Poder: 21
carlosmoralesm Va por buen camino
Cambiar a ADO es muiy dificil puesto que tengo poco conocimiento de su manejo y ademas ya tengo mucho desarrollo en BDE y bueno lo que estoy haciendo es ABC de una base de datos donde al dar doble click en un grid me abre la pantalla de actualizacion del registro pero debo de verificar que no se repita el nombre de un dispositivo.
Responder Con Cita
  #12  
Antiguo 06-06-2004
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 22
__marcsc Va por buen camino
Bueno, como todo nuevo en esta vida, al principio cuesta más que lo que ya conoces, pero ADO es una tecnología que no tiene nada de particular y que, una vez te sabes los dos o tres truquillos, no tiene nada de difícil.

Evidentemente yo no estoy hablando de pasar lo que ya tienes a ADO, lo que digo es que si tienes que empezar algun proyecto nuevo, puedes plantearte utilizarlo.

Con ésto no quiero convencerte de nada, simplemente te comento que, en mi experiencia personal, el cambio de BDE a ADO ha sido muy positivo.

Un saludo
Responder Con Cita
  #13  
Antiguo 07-06-2004
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 22
ramiretor Va por buen camino
Hola:
No sé si te sirva pero a mi me ha pasado con BDE que el número de registros que tiene el DataSet me regresa -1, yo lo he arreglado (pero esto no es muy eficiente que digamos) haciendo lo siguiente:

Código:
...
query.open;
query.last;
x:= query.RecordCount;
...
A lo mejor asi puedes recuperar el registro en el que te encuentras
Espero te sirva de algo
Saludos a todos
__________________
Ernesto R.
Responder Con Cita
  #14  
Antiguo 07-06-2004
carlosmoralesm carlosmoralesm is offline
Miembro
 
Registrado: feb 2004
Posts: 94
Poder: 21
carlosmoralesm Va por buen camino
Grcacias marcsc ya cambie a ADO el sistema y no represento gran problema

ademas de que funciona mucho mejor y mas rapido

Te agradezco la atencion y los tips
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


La franja horaria es GMT +2. Ahora son las 18:50:09.


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