Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema con la actualización IBDataset (https://www.clubdelphi.com/foros/showthread.php?t=38033)

Vlady 30-11-2006 01:10:38

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

Delfino 30-11-2006 11:45:57

Cita:

Otra duda tengo ..
segun la guia de estilos debes abrir un nuevo hilo si tienes una nueva duda..

Vlady 03-12-2006 00:16:30

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

Lepe 03-12-2006 00:52:34

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

roman 03-12-2006 02:10:03

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

Vlady 04-12-2006 02:05:38

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

roman 04-12-2006 05:40:38

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


La franja horaria es GMT +2. Ahora son las 08:27:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi