https://foro.gambas-es.org/viewtopic.php?f=3&t=2939
-----------------------------------
metalgearxd
Viernes, 01 Marzo 2013, 21:05

Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
hola a todos bueno quisiera saber como crear un valor que se autoincremente a medida que se van ingresando registros en la base de datos

estuve probando con sqlite con el tipo de campo "autonumerico" pero solo puedo hacer que me imprima 1 solo regitstro independiende , lo que quiero que me registre todo la cantidad de de los registros 

Gracias !!


-----------------------------------
jsbsan
Viernes, 01 Marzo 2013, 21:25

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
metalgearxd
[quote]como crear un valor que se autoincremente a medida que se van ingresando registros en la base de datos[/quote]
Creo que alguien ya contesto en el foro esta pregunta, pero te explico cual es el método:
- Deja una columna con nombre ID (por ejemplo), que sea del tipo integer, en la tabla
- Cada vez que añadas un registro, haz una consulta de la tabla, comprobando cual es el numero mayor (MAX) que contenga esa columna ID
SELECT MAX(id) FROM TuTabla;

- Le sumas +1, y se lo añades al campo ID de tu registro.


[quote] , lo que quiero que me registre todo la cantidad de de los registros [/quote]
No se que quieres decir.  :roll:


-----------------------------------
jguardon
Viernes, 01 Marzo 2013, 21:47

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
No es necesario, Julio. Cualquier campo en sqlite que se declare como INTEGER PRIMARY KEY se va a autoincrementar. Pero para que lo haga, debemos de insertar un valor NULL en ese campo cada vez que insertemos un registro. Y ya está, así de fácil.

http://www.sqlite.org/faq.html#q1


Si es para mysql, es algo diferente, pero sólo hay que leer el manual: http://dev.mysql.com/doc/refman/5.0/es/example-auto-increment.html

Saludos


-----------------------------------
jousseph
Domingo, 03 Marzo 2013, 20:20

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
En sqlite no se puede crear un auto incremento habría que crear un contador para eso en modo código en una textbox, eso solo se puede hacer es en mysql y en postgres.


-----------------------------------
jguardon
Domingo, 03 Marzo 2013, 20:24

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
[quote user="jousseph" post="16576"]En sqlite no se puede crear un auto incremento habría que crear un contador para eso en modo código en una textbox, eso solo se puede hacer es en mysql y en postgres.[/quote]


Perdona, jousseep, estás equivocado porque seguramente no has leído bien. Vuelve a leer mi post anterior y comprobarás que SÍ se pueden crear campos con autoincremento en sqlite.

Saludos


-----------------------------------
RodSanRey
Martes, 05 Marzo 2013, 14:38

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
hola que tal pues mira yo cree un procedimiento en el cual me crea un valor nuevo automaticamente  

digamos aquí utilizo un numero de empleado con el formato siguiente  0001, y así sucesivamente.  el procedimiento es el siguiente.

[code linenumbers=false syntax=gambas]
Private Procedure zaSignumEro()
  Dim $conSulta As String
  Dim $tAblareS As Result
  $conSulta = "SELECT * FROM empleados ORDER BY clav_empl"   'generas una consulta con el campo a incrementar
  Try $tAblareS = ModulConexion.$cOneX.Exec($conSulta)
  If Error Then
    ModulMensajes.$desCerroR = Error.Text
    ModulMensajes.msGerrorMysql
  Else
    If $tAblareS.Available Then
      $tAblareS.MoveLast
      TextBox4.Text = Format((Val($tAblareS!clav_empl) + 1), "0###")    'tomas el valor si existe y le sumas 1 para que cambie el valor y lo muestras en una caja de texto
      TextBox4.ReadOnly = True
      Timer2.Enabled = True
      If Frame1.Height = 220 Then Timer2.Enabled = False
      TextBox5.SetFocus
    Else
      TextBox4.Text = Format(1, "0###")    'si no existe o esta vacia la tabla el conteo empieza desde 1 tomando el formato que le das
      TextBox4.ReadOnly = True
      Timer2.Enabled = True
      If Frame1.Height = 220 Then Timer2.Enabled = False
      TextBox5.SetFocus
    Endif
  Endif
End
[/code]

el campo clav_empl en la tabla lo pongo como nvarchar para que me respete los 0's a la izquierda. ya después de que capturaste tus valores lo grabas con un insert into y ya.

espero haberte dado una idea saludos.


-----------------------------------
Dani26
Martes, 05 Marzo 2013, 15:24

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
[quote]No es necesario, Julio. Cualquier campo en sqlite que se declare como INTEGER PRIMARY KEY se va a autoincrementar. Pero para que lo haga, debemos de insertar un valor NULL en ese campo cada vez que insertemos un registro. Y ya está, así de fácil.[/quote]
Pues , como bien dice Jesús , no hay más misterios que ese, así es como yo lo hago y funciona perfecto, sin complicaciones.
Saludos


-----------------------------------
Haseo
Miercoles, 06 Marzo 2013, 02:23

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
latabla.Fields.Add("id",[b] db.Serial[/b])
 
en SQLITE se utiliza Serial, cuando creo la base de datos le asigno los campos que necesito, todo por linea de código, utilizo la sentencia de arriba para [b]asignarle que es autonumerico [/b]y para asignarla como primary key   latabla.[b]PrimaryKey [/b]= ["id"]


-----------------------------------
Torrealba2719
Miercoles, 04 Octobre 2017, 00:37

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
Y si tengo 3 items y que cada vez que venda 1 item se me sume en algun lado o en otra tabla la cantidad que he vendido de cada items.       osea tengo en ventea una camisa un pantalon y unos zapatos de los cuales he vendido 3 camisas 0 pantalones y 20 zapatos. eso es posible  llevar ese tipo de cuentas !!


-----------------------------------
jsbsan
Miercoles, 04 Octobre 2017, 06:57

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
Torrealba2719
[quote]se me sume en algun lado o en otra tabla la cantidad que he vendido de cada items.[/quote]
Si usas bases de datos, esas sumas pueden darte problemas. 
Yo creo que es mejor, apuntar los cosas que vendes (cantidad, y producto) , y luego que el programa se encargue de consultar la tabla de ventas y sumar las cantidades.


-----------------------------------
shordi
Miercoles, 04 Octobre 2017, 07:33

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
[quote]Y si tengo 3 items y que cada vez que venda 1 item se me sume en algun lado o en otra tabla la cantidad que he vendido de cada items.  [/quote]
Eso es inúti, trabajoso y peligroso. 

Inútil porque si tienes un 2 y un 2 ¿para qué quieres almacenar un cuatro? 

Trabajoso porque tendrías que andar programando la actualización de esa tabla de sumas en cada movimiento que hagas en la base de datos y...

Peligroso porque es facilísimo que esa sumas / restas se desmadren y no coincidan con los datos.

Si quieres saber en cada momento cuánto has vendido haz una consulta a la base de datos que te haga el trabajo siempre que lo necesites y ya está.

Si es algo muy frecuente deja la consulta grabada como una vista.

Saludos


-----------------------------------
tincho
Miercoles, 04 Octobre 2017, 10:07

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
[quote user="Torrealba2719" post="40129"]Y si tengo 3 items y que cada vez que venda 1 item se me sume en algún lado o en otra tabla la cantidad que he vendido de cada items...[/quote]
Considera la siguiente forma de hacerlo: Usa dos tablas una PRODUCTOS y otra VENTAS. Luego usas una vista RESUMEM que haga la cuenta y eso es lo que ves en el gridview del programa.

Por ejemplo:
[code linenumbers=false syntax=sql]
CREATE TABLE `ventas` (
 `venidx` INTEGER PRIMARY KEY AUTOINCREMENT,
 `venprod` INTEGER,
 `vendat` TEXT,
 `venaty` INTEGER,
 FOREIGN KEY(`venprod`) REFERENCES `productos`(`prodidx`)
 );
INSERT INTO `ventas` VALUES (1,2,'20171220',1);
INSERT INTO `ventas` VALUES (2,2,'20171221',2);
INSERT INTO `ventas` VALUES (3,3,'20171220',5);
CREATE TABLE `productos` (
 `prodidx` INTEGER PRIMARY KEY AUTOINCREMENT,
 `prodname` TEXT
 );
INSERT INTO `productos` VALUES (2,'Albahaca');
INSERT INTO `productos` VALUES (3,'Tmate');
INSERT INTO `productos` VALUES (4,'Papa');
INSERT INTO `productos` VALUES (5,'Berenjena');
INSERT INTO `productos` VALUES (6,'Apio');
INSERT INTO `productos` VALUES (7,'Maíz');
INSERT INTO `productos` VALUES (8,'Zapallo');
CREATE VIEW "view_resumen" AS
 select
 prodidx,
 prodname,
 total(ifnull(venaty,0)) as prodqty
 from productos
 inner join ventas on prodidx=venidx
 group by prodidx;
COMMIT;
[/code]
Saludos.


-----------------------------------
Torrealba2719
Jueves, 05 Octobre 2017, 13:40

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
[quote user="jsbsan" post="40131"]Torrealba2719
[quote]se me sume en algun lado o en otra tabla la cantidad que he vendido de cada items.[/quote]
Si usas bases de datos, esas sumas pueden darte problemas. 
Yo creo que es mejor, apuntar los cosas que vendes (cantidad, y producto) , y luego que el programa se encargue de consultar la tabla de ventas y sumar las cantidades.[/quote]


La logica seria que el programa sume todo y luego consulte la cantidad en la base de datos y  se le sume lo que se vendio a la cantidad que esta en la base de datos.. :?:


-----------------------------------
Torrealba2719
Jueves, 05 Octobre 2017, 13:46

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
[quote user="shordi" post="40132"][quote]Y si tengo 3 items y que cada vez que venda 1 item se me sume en algun lado o en otra tabla la cantidad que he vendido de cada items.  [/quote]
Eso es inúti, trabajoso y peligroso. 

Inútil porque si tienes un 2 y un 2 ¿para qué quieres almacenar un cuatro? 

Trabajoso porque tendrías que andar programando la actualización de esa tabla de sumas en cada movimiento que hagas en la base de datos y...

Peligroso porque es facilísimo que esa sumas / restas se desmadren y no coincidan con los datos.

Si quieres saber en cada momento cuánto has vendido haz una consulta a la base de datos que te haga el trabajo siempre que lo necesites y ya está.

Si es algo muy frecuente deja la consulta grabada como una vista.

Saludos[/quote]



Lo que pasa es que quiero un programa que me diga en el dia cuantas   manzanas se vendieron a las 10:00 y cuantas a las 11:00 y asi en el dia y cuantas se vendieron en el dia completo.   y hacer eso con mas de 50 frutas y alimentos.  para yo desde otro sofware conectado a internet tambien con una base de datos de mysql en internet  el proveedor vea cuanto se ha vendido y que necesidades tiene .. ejemplo ya vendio los 50 kilos el probeedor ya sabe que tiene que enviar 50 mas y asi pero claro primero quiero hacer el programa de ventas y luego me pego con el otro..


-----------------------------------
shordi
Jueves, 05 Octobre 2017, 17:48

Re: Como Crear Un Valor Que Se Autoincremente Segun Los Registros
-----------------------------------
[quote]Lo que pasa es que quiero un programa que me diga en el dia cuantas   manzanas se vendieron a las 10:00 y cuantas a las 11:00 y asi en el dia y cuantas se vendieron en el dia completo.   y hacer eso con mas de 50 frutas y alimentos.  para yo desde otro sofware conectado a internet tambien con una base de datos de mysql en internet  el proveedor vea cuanto se ha vendido y que necesidades tiene .. ejemplo ya vendio los 50 kilos el probeedor ya sabe que tiene que enviar 50 mas y asi pero claro primero quiero hacer el programa de ventas y luego me pego con el otro..[/quote]
¿Qué experiencia tienes con Bases de Datos?


