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 30-11-2006
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
Problema con la actualización IBDataset

Hola, estoy haciendo mis primeros pinitos en firebird y se me presenta el siguiente problema en una tabla que manejo mediante un IBDataset llamada servicios deseo insertar los servicios o articulos dependiendo de la ventana que elije el cliente esto lo controlo meidante un campo llamado tipo, si el cliente quiere insertar un servicio en este campo guarda un true y si guarda un articulo guarda un false en este campo. Mi problema radica en que nose como realizar esto de una forma automatizada no lo a querido hacer y ya llevo rato dandole estas son mis consultas

Esta es la consulta de borrado no se borra sino que se desactiva otro campo llamado activo


Código SQL [-]
UPDATE SERVICIO
SET 
ACTIVO=:"False"
WHERE CODIGO=:OLD_CODIGO

Esta es la consulta de inserción
Código SQL [-]
INSERT INTO SERVICIO
(CODIGO, NOMBRE, VALOR, IVA, OBSERVACIONES, TIPO,
GRUPO, ACTIVO) 
VALUES (:CODIGO, :NOMBRE, :VALOR, :IVA,
:OBSERVACIONES, :"False", :GRUPO, :ACTIVO)

Consulta de modificación

Código SQL [-]
UPDATE SERVICIO
SET 
CODIGO=:CODIGO,
NOMBRE=:NOMBRE,
VALOR=:VALOR,
IVA=:IVA,
OBSERVACIONES=:OBSERVACIONES,
TIPO=:"False",
GRUPO=:GRUPO,
ACTIVO=:ACTIVO
WHERE CODIGO=:OLD_CODIGO

Consulta de refresh

Código SQL [-]
select * from Servicio
WHERE Codigo = Codigo AND Activo = "True" AND Tipo = "False"
Order By Nombre Asc

Consulta de seleccion
Código SQL [-]
SELECT * FROM Servicio
WHERE Tipo = "False" AND Activo = "True"
Order by Nombre Asc

En este caso estaria insertando y modificando articulos ya que el tipo esta en False para borrar articulos actualizo el campot activo a false, esta tabla la trabajo con un DBNavigator, al dar clip en el boton para el post me duplica el el primer registro despues del refresh y el campo tipo lo guarda sin valor, cabe anotar que estoy haciendo un CommitRetaining en el evento afterpost de la tabla.

Otra duda tengo un formulario donde tengo un DBLookupComboBox que lista las ciudadades si la ciudad no existe entonces hay un boton agregar ciudad la cual abre otro form donde se puede añadir la nueva ciudad mediante un dbnavigator, se realiza el post pero cuando regreso al DBlookupComboBox me aparace la nueva ciudad repetida tan veces como registro haya en la tabla y no me deja adicionarlo, estoy trabajando tambien con un IBDataset, creo que debe se la consulta de actualizacion la cual es esta.


Si alguien me puede colaborarar lo agradeceria infinitamente

Código SQL [-]
select * from CIUDAD
WHERE ID = ID

Última edición por Vlady fecha: 30-11-2006 a las 01:51:07.
Responder Con Cita
  #2  
Antiguo 30-11-2006
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Cita:
Otra duda tengo ..
segun la guia de estilos debes abrir un nuevo hilo si tienes una nueva duda..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #3  
Antiguo 03-12-2006
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
Ambas dudas son acerca de lo mismo, lo que encierra una misma pregunta. No hay necesidad de un nuevo hilo, solo pregunto acerca del uso del IBDataset
Responder Con Cita
  #4  
Antiguo 03-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Código SQL [-]
UPDATE SERVICIO
SET 
ACTIVO=:"False"
WHERE CODIGO=:OLD_CODIGO

Sobran los dos puntos delante de "False", y lo mismo en los demás SQLs.
Cuando pones dos puntos antes de algo en un SQL, estás diciendo que eso es un parámetro. Hay casos especiales con el nombre del parámetro (lo que sigue a los dos puntos:
- Si es el nombre exacto de un campo, se sustituye por el DBEdit que tenga asociado.
- Si al nombre del campo le precede NEW_ o quizás OLD_ se corresponde al valor nuevo del DBEdit o al valor antes de actualizarse respectivamente.

Además creo que debe usarse las comillas simples en lugar de dobles... no estoy seguro.

En cuanto a lo segundo:
Código SQL [-]
select distinct NombreCiudad from CIUDAD
WHERE ID = ID

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 03-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Vlady
Ambas dudas son acerca de lo mismo, lo que encierra una misma pregunta. No hay necesidad de un nuevo hilo, solo pregunto acerca del uso del IBDataset
Claro que hay necesidad. Las dudas no tienen otra relación una con la otra que el uso de IBDataSet, lo cual es algo muy general como para poder aducir que cualquier pregunta sobre ello cabe en un mismo hilo. Por favor respeta la guía de estilo y no desdeñes las recomendaciones de los otros foristas.

// Saludos
Responder Con Cita
  #6  
Antiguo 04-12-2006
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
Estoy infinitamente agradecido con lepe por consterar mis preguntas, no sabes de la gran ayuda que han sido para resolver mi problemas.

No estoy desdeñando de los foristas si han interpretado mal mis sugerencias pido disculpas.

Gracias
Responder Con Cita
  #7  
Antiguo 04-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Disculpa pero nadie ha interpretado mal. Tú hiciste dos preguntas sin relación una con la otra en el mismo hilo y esto es lo se está pidiendo que no hagas. Así que una vez más te pido que no desdeñes las reglas de los foros.

// 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
uso del IBDataSet Giniromero Conexión con bases de datos 21 10-07-2006 00:12:47
Como uso el IBDataSet? DarkSide Firebird e Interbase 4 18-07-2005 21:48:28
IBDataset no modifica istradlin Conexión con bases de datos 2 19-04-2005 23:44:22
Problema con filtro en IBDataset senpiterno Conexión con bases de datos 2 31-01-2005 00:19:51
Problema con ibDataSet y parametros. Nuria Conexión con bases de datos 8 01-08-2003 10:40:50


La franja horaria es GMT +2. Ahora son las 07:18:53.


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