PDA

Ver la Versión Completa : Recoger valor campo autonumerico


mamsantos
26-07-2005, 17:31:40
Hola.
Vereis, estoy intentando recoger el máximo valor de un campo autonumérico para mostrarlo en un componente de tipo Edit, y no se muy bien como hacerlo.
La idea es que cada vez que añado un nuevo elemento a la BD me aparece un formulario para rellenar sus datos, y uno de los datos a rellenar es el identificador del elemento, que es autonumérico y que por tanto no tengo que rellenar yo, sino que tengo que tomar el valor de la BD y mostrarlo en el correspodiente campo Edit del formulario.

Puedo deciros que he creado un componente dbQuery y en él he hecho la consulta "select max(nombre_columna) from nombre_tabla", con lo cual obtengo el valor que tengo que mostrar, pero no se como hacer para mostrar ese valor obtenido en el componente Edit pertinente. De hecho no se si voy bien encaminado o eso no es necesario hacerlo.

Gracias y saludos.

Johnny Q
26-07-2005, 19:51:32
Hola

Pues en delphi para Windows funciona asi:

edit1.text := NombreQueryNombreCampo.ToString;

Saludos...

mamsantos
27-07-2005, 12:53:14
Hola.
Me temo, Jonnhy Q, que ese código no me vale, ya que después del nombre del dbQuery lo que tengo que poner es alguna de las funciones que tiene asociado ese componente. He estado mirando todas las que trae, pero no consigo obtener ese dichoso valor.
Gracias y saludos.

marcoszorrilla
27-07-2005, 14:55:03
edit1.text := NombreQueryNombreCampo.Value;
Lo que te dice Johnny Q, funcionará con campos persistentes, es decir si has hecho doble clic en el componente Tquery y luego añadido los campos al editor.

Sino como solamente vas a obtener un campo:

edit1.text := NombreQuery.Fields[0].AsString;


Un Saludo.

Johnny Q
27-07-2005, 14:57:24
No entiendo porque dices que tienes que poner algunas de las funciones asociadas al Query.

Si yo creo un Query que hace referencia a la tabla Proveedores y a sus campos Codigo y Nombre, por citar un ejemplo entonces lo que hago es invocar el campo directamente.

Cuando se activa autocompletar de código que trae delphi, si yo quiero invocar el campo Codigo del query Proveedores me debe mostrar en algun momento:

qryProveedorCodigo
y el resto ya depende de lo que se necesite. No se si en Kylix funcione muy diferente a Win32, pero no creo.

Saludos....

maeyanes
27-07-2005, 15:50:16
Pero eso solo es cuando creas campos persistentes, tal y como comenta mi tocayo zorrilla. De otra forma se usaría:

Edit1.Text := NombreQuery.FieldByName('NombreCampo').AsString; // o .Value

O si el campo requerido en el query es solo uno, se puede usar la forma usada por marcoszorrilla.


Saludos...

mamsantos
27-07-2005, 18:35:11
Hola.
Muchas gracias a todos, por vuestra ayuda.
Al final es como dice marcoszorrilla. Aunque me ha seguido dando dolores de cabeza. No se porque aun haciendolo así

edit1.text := NombreQuery.Fields[0].AsString;
me daba un error de que me salía fuera de los límites de la lista, es decir, que el campo[0] no existia, hasta que se me hincharon y al final borre el query y lo volvi a hacer, con lo cual el fallo debía estar ahí.
De nuevo gracias a todos y saludos.