Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-01-2012
yevabas yevabas is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 42
Poder: 0
yevabas Va por buen camino
Auto.incrementar

Buenas Tardes

He revisado varios hilos de este tema pero sigo con los mismos problemas, pues no tengo experiencia en el manejo de bases con delphi y esas cosas, por esta razón me quedan muchas dudas al respecto.

Tengo una tabla con los siguientes campos, ID, CANTIDAD, P1,P2,P3,P4,P5, P_TOTAL(ESTE DEBE SER LA SUMA DE TODAS LAS P),
PUNTOS, VAL_PUNTO, TOTAL(SALE DE MULTIPLICAR PUNTOS Y VAL_PUNTOS), ningun campo puede estar vacio.

El campo ID es auto incrementado por un triguer

Código SQL [-]
SET SQL DIALECT 3;

CREATE GENERATOR GEN_COMPRAS_ID;

SET TERM ^ ;



CREATE TRIGGER COMPRAS_BI FOR COMPRAS
ACTIVE BEFORE INSERT POSITION 0
as
begin
  if (new.consec is null) then
    new.consec = gen_id(gen_compras_id,1);
end
^


SET TERM ; ^

si ingreso los datos manuales a la base todo funciona bien se auto incrementa sin problema.

Cree un formulario con delphi 7 y hago la conexión con la base con los componentes IB, tengo un DBNavigator para crear los registros y recorrer la tabla , para llenar los datos utilizo un Tdbedit, cada uno de estos apunta al campo que le corresponde, el tdbedit del ID esta de solo lectura, lleno los demás campos y al grabar me genera un error en el que me dice que el campo ID debe tener algún valor, este es mi primera duda que debo hacer para que no aparezca este error y se graben los datos en la tabla y el campo ID se auto incremente normalmente, otro cosa es que cuando le de nuevo registro en el DBNavigator me muestre el nuevo numero de registro (ID).

lo segundo es como haría para calcula la suma de todos los campos P y me los muestre antes de grabar o refrescar, se puede con un dbedit o me toca cambiar el componente, lo mismo seria para TOTAL, si no utilizo un dbedit despues como grabo los datos en la base cuando le de guardar, ademas tengo un dbgrid donde también puedo ver todos los datos de la tabla.


gracias por la ayuda
Responder Con Cita
  #2  
Antiguo 20-01-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola yevabas.

Por favor recuerda que una pregunta por hilo: Punto 8 de la guía de estilo.

Cita:
al grabar me genera un error en el que me dice que el campo ID debe tener algún valor
Si estas utilizando un TIBDataSet o un TIBQuery, desde el Object Inspector hacé lo siguiente:

Generator Field ->
  • Generator: GEN_COMPRAS_ID
  • Field: ID
  • Increment By: 1
  • OnPost
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-01-2012
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Lo que te recomienda ecfisa es lo que yo hago. Esos trigger después te complican cuando querés modificar algo en la tabla.
No recuerdo si al campo, en este caso ID, tenés que declararlo como required = False.

Si vas a seguir trigger, al campo ID tenes que ponerlo en required = false

Última edición por Cañones fecha: 20-01-2012 a las 22:26:58. Razón: Ortografía
Responder Con Cita
  #4  
Antiguo 01-02-2012
yevabas yevabas is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 42
Poder: 0
yevabas Va por buen camino
Ok muchas gracias voy a intentarlo y les cuento, y disculpas por las dos preguntas en un solo hilo.....
Responder Con Cita
  #5  
Antiguo 13-02-2012
yevabas yevabas is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 42
Poder: 0
yevabas Va por buen camino
Gracias ecfisa lo resolví exactamente como lo dices, perdón por la demora en contestar pero me toco salir de viaje...

Cita:
Empezado por ecfisa Ver Mensaje
Hola yevabas.

Por favor recuerda que una pregunta por hilo: Punto 8 de la guía de estilo.


Si estas utilizando un TIBDataSet o un TIBQuery, desde el Object Inspector hacé lo siguiente:

Generator Field ->
  • Generator: GEN_COMPRAS_ID
  • Field: ID
  • Increment By: 1
  • OnPost
Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Incrementar Campo sierraja Firebird e Interbase 6 05-05-2010 17:42:12
Incrementar Un Registro einarcito SQL 3 21-10-2008 14:13:02
incrementar trafico Web Yensis22 Internet 5 12-09-2008 14:02:00
Incrementar el tiempo de espera en ADO mvelgar Conexión con bases de datos 4 14-07-2005 21:43:05
Incrementar un campo numerio edwin1 OOP 1 11-08-2003 21:32:01


La franja horaria es GMT +2. Ahora son las 23:38:38.


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
Copyright 1996-2007 Club Delphi