Autoincrementar El Id


Objetivo: Autoincrementar El Id
Hola. Tengo gambas 2 y quería saber de que forma puedo hacer para incrementar automáticamente el id de mi base de datos, es decir, cada vez que ingreso un dato a la tabla que aumente el id.

Lo que intente es
res = cn.Exec("Select * From Pedidos")
id = res.Count + 1
res.MoveFirst
TRY cn.Exec("insert into Pedidos value (&1,&2,&3,&4,&5,&6,&7,&8,&9,&10)", Id, Txt_titulo.Text, Txt_cliente.Text, cmb_monitoreo.Text, cmb_prioridad.Text, cmb_estado.text, txt_fecha.text, txt_direccion.text, txt_ciudad.text, txta_ticket.t entradaext)

pero el problema esta en que cuando borro un registro me tira error porque dice que no se puede duplicar el id 2.

Y también intente lo siguiente
res.MoveLast
id = res["Id"] + 1
cn.Exec("insert into Pedidos value (&1,&2,&3,&4,&5,&6,&7,&8,&9,&10)", Id, Txt_titulo.Text, Txt_cliente.Text, cmb_monitoreo.Text, cmb_prioridad.Text, cmb_estado.text, txt_fecha.text, txt_direccion.text, txt_ciudad.text, txta_ticket.text)

y en este caso pasa lo mismo porque ingreso un valor y ese valor queda ubicado en la primera ubicación en la tabla de la base de datos entonces el ultimo valor en este caso es 2 y me tira error diciendo que no se puede duplicar el valor 3.
y si o si tiene que tener un id primario porque sino no lo puedo editar. Agradezco su ayuda

Perfil MP  
Objetivo: Re: Autoincrementar El Id
hola:

no se si te refieres a incrementar un campo dentro de una base de datos.

si es así...

si trabajas en mysql o sql, tienes que crear un campo id, con característica de índice y autoincremento (dentro de la base de datos)

si utilizas phmyadmin, son los cajoncitos que hay al final de cada campo, en extructura.

de esa manera, cada vez que metas un dato en la base de datos, este se autoincrementará en 1

en caso de no resolver el problema, o que sea otro distinto, indica mas datos, para poder ayudarte

Un saludo

Perfil MP  
Objetivo: Re: Autoincrementar El Id
Hola Alan

Te comento. Lo más adecuado es dejar esa tarea a la propia base de datos. Si tu base es SQLite3, coloca el campo ID de tipo Serial y listo. Ahora, si es SQLite2 creo que no lo hace y debes hacerlo manualmente. Yo haría una consulta para buscar el valor máximo del campo ID. Así cutre sería como comento ahora, pero SQL tiene algunas opciones que te permiten calcular algunos valores y seguro que hay alguna función para saber este valor máximo más facilmente. Bueno, aquí el ejemplo:

DIM strsql as string
DIM iNuevoId as integer
strsql = "SELECT * FROM tabla ORDER BY id"
res = cn.Exec(strsql)
if res.count>0 then
res.MoveLast
iNuevoId = res["id"] + 1
else
iNuevoId=1
end if

Objetivo: Re: Autoincrementar El Id
Lo que podrias hacer la siguiente consulta

select max(id) + 1 as id from productos;


el esta consulta te ira mostrando el ultimo id insertado + 1, es un poco deficiente pero sirve lo otro seria como comentaron arriba asignar un campo tipo serial en tu base datos y a la hora de insertar este se incrementa solo, Espero que sea de utilidad.

Perfil MP  
Objetivo: Re: Autoincrementar El Id
Gracias por la ayuda... Solucionado

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.374s (PHP: -84% SQL: 184%)
Consultas SQL: 43 - Debug off - GZIP Activado