PDA

Ver la Versión Completa : ayudita con el tquery


vetustas
27-10-2003, 19:36:52
Trabajo con Delphi5 y bases de datos Paradox. Tengo varias tablas y en cada una de ellas tengo un código entero que actua de clave. Como quiero que el codigo se incremente cada vez que inserto una tupla en la tabla en principio me gustaria usar un query que consulte cuantos elementos hay en dicha tabla. Pero soy muy novata en todo esto y la verdad que no se ni que consulta tengo que poner de sql (será algo asi como select count(*) from tabla?) y tampoco sé como activar el query. Por ejemplo, asignar ese resultado a una variable de tipo entero...como sería todo el proceso?
Muchas gracias

roman
27-10-2003, 19:42:42
Usar count(*) para generar el código no es muy confiable ya que si en algún momento borras registros obtendrás un código ya usado.

En Paradox puedes usar campos AutoInc para generar automáticamente el siguiente número. Te evita llenar tú misma el valor ya que el mismo sitema se encarga de ello.

Pra activar un query puedes usar

Query.Active := true;

o bien

Query.Open;

Los valores de los campos los puedes acceder mediante

Query.FieldByName('nombre del campo').AsXXX

donde AsXXX depende del tipo de datos que tenga el campo. Puede ser AsInteger, AsString, AsBoolean, AsFloat, etc.

// Saludos

vetustas
27-10-2003, 19:57:33
Jolin! Si que eres rapido contestando :) Muchas gracias. Es que antes yo usaba un campo de autoincremento para el código que te dije pero es que ahora me encuentro con que al estar cargando un fichero excel a la base de datos me da el siguiente error: "Corrupt Index. Table: c:\...\Alumno.PX". Me han dicho que no tiene nada que ver con el campo autoincremento pero es que usando enteros ya no me pasa.Lo que me pasaba antes era que todo funcionaba perfectamente hasta que llegaba un momento que al ejecutarlo otra vez me daba el error antes mencionado. Pero por otro lado eso que dices de que si borro registros se me asignan codigos que ya habian estado es cierto. Qué me recomiendas entonces? lo del autoincremento?.Muchas gracias x tu ayuda :)

roman
27-10-2003, 20:07:22
Posteado originalmente por vetustas
Qué me recomiendas entonces? lo del autoincremento

Así es, siempre que el motor de bd tenga un generador de autoincrementos (como es el caso presente) me parece la mejor opción ya que hacer un generador propio requiere muchos detalles. Por ejemplo, además del que te mencioné anteriormente, tendrías que bloquear la tabla cada vez que vas a asignar un nuevo código para evitar que sesiones distintas asignen el mismo código.

Por otro lado, en principio es cierto, no tendría nada que ver el uso de campos AutoInc con el error que te marca. Habría que empezar viendo cómo estas cargando el archivo de Excel.

// Saludos