Problema con campo identity
Hola Amigos:
Tengo una base de datos sql 2000 con delphi 7 ambos conectados con un odbc. Apenas estoy conociendo SQL y mi problema es este: Al hacer insert en una de las tablas me sale el siguiente error del campo identity, despues del Post: Field "ID" must have a value. Si hago un edit en la tabla o un delete no me sale error. Este es el codigo que tengo en delphi: procedure TForm4.Button2Click(Sender: TObject); Var Registros:Integer; begin if Choferes1.State = dsInsert then Begin Choferes1.Post; Choferes1.Close; Choferes1.Open; Choferes1.FindLast; Registros:= Choferes1.RecordCount; Label18.Caption:= inttostr(Registros)+' Registros'; end; Ojala que me puedan ayudar, no se que estoy haciendo mal o que me falta hacer, pero necesito resolver esto, gracias de antemano |
Tienes que asignarle un valor al campo ID, aunque realmente no se use porque tiene el identity, puedes generar los campos persistentes y quitarle lo de requerido para que no te lo pida, pero puedes usar el evento afterinsert y ahi darle un valor al campo ID, insisto no importa cual porque despues lo descarta
|
Gracias Luis
Este campo en realidad lo necesito como un id, ¿ no hay algun tipo de campo en SQL que incremente y asigne su valor automaticamente cuando se inserta un nuevo registro ? Saludos |
Puedes usar ese campo tal cual como identidad, nada mas en delphi le vas a asignar un valor aunque este no se use, por ejemplo cuando creas los registros tu le asignas el valor de 2 por ejemplo, pero en realidad cuando grabe te va a dejar el 1,2,3,.... etc
|
Problema con campo identity
Hola:
en SQL Server 2000 puedes crear un campo autonumerico poniendo la propiedad Identity en Verdadero y las propiedades Identity Seed y Incrementy en 1. Otra cosa que te recomendaria es utilizar como conexion a la BD ADO que te permitira mas velocidad y seguridad, utilizando los AdoStoreProcedure. Saludos Luis Garcia |
Hola,
Para declarar un campo autonumerico debes de decirle al campo que los es de la siguiente manera: El Campo ID es un campo autonumerico, y cuando insertas un registro en la base de datos éste campo aumentara su valor en uno automáticamente, sin necesidad de pasarle ningún dato. Si en dos ordenadores añades un registro a la misma vez, no te preocupes el servidor le asignara un número a cada uno. Un saludo. |
Perdón se me ha olvidado el nombre de la table.
Un saludo. |
Gracias a todos por su ayuda, ya esta resuelto ese problema
Luis Cuenca |
La franja horaria es GMT +2. Ahora son las 16:37:04. |
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