Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-07-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Arrow

Bueno en parte funciona, pero ahora el query debe cumplir ciertos requerimientos. Algo así como:
Código SQL [-]
SELECT * FROM mitabla WHERE ALGO = 'ejemplo' AND TIPO = 'TIPO1';

Pero no muestra la nueva columna, he probado también poniendo los query (y sus datasets) en cadena y tampoco funciona bien.

Debe haber alguna manera de hacer que los dos querys (el de multiplicación y el de seleccionar líneas con cierto criterio) funcionen a la vez, o por qué no, meter los 2 en la misma línea. Les agradecería mucho si me ayudaran con este problemilla.
__________________
Aprendiz de Embarcadero RAD Studio...

Última edición por HombreGordo fecha: 30-07-2008 a las 14:04:25.
Responder Con Cita
  #2  
Antiguo 30-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,

si cada consulta necesita un filtro diferente, tendras que usar diferentes consultas..si no es el caso, entonces con

Código Delphi [-]
'select *, unidades * ' + editmult.text + ' as resultado from tabla where --condiciones--'

te tendria que dar tanto la multiplicacion como el resto de campos que forman la tabla dentro de las condiciones (unidades, claro esta, tambien seran tansolo las que cumplan las condiciones).
Cita:
Estuve pensando en que si la inexistencia del campo "RESULTADO" tiene algo que ver, debido a que solo la quiero para mostrar,
en principio no, pues lo que estas haciendo con la consulta es crear ese campo, que permanecera en el query hasta su proximo cambio. Lo que creo que te ocurria es que llamabas a la sentencia sql sin tener en editmult algo valido (si editmult = '', entonces la consulta te quedaba 'select *, unidades * as resultado...', y te sale el 'as' como invalid keyword.)

Última edición por coso fecha: 30-07-2008 a las 16:53:37.
Responder Con Cita
  #3  
Antiguo 30-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
en el segundo caso, en la consulta ya no creas un campo 'resultado', por lo que este desaparece del query
Responder Con Cita
  #4  
Antiguo 01-08-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Smile Gracias... peeero

¡Hey! Gracias por guiarme en el arduo camino de la programación, por fin funcionó, estoy sumamente agradecido con Uds.

Pero la cosa no termina aquí... Ahora viene algo más complejo (para ahorrar threads creo que conviene usar este mismo). ¿Cómo sería el procedimiento para crear una columna que según una condición multiplique por un determinado multiplicador, y si cumple con otra condición, multiplique por otro?

Algo como esto:
Código SQL [-]
SELECT * FROM mitabla WHERE (Cond1 = 'Bonito' AND  Cond2 = 'Barato') OR (Cond1 = 'Feo' AND Cond2 = 'Costoso');

Es decir, si se cumple la primera condición, que multiplique por un número, si se cumple lo que está después del "OR" que multiplique por otro. Creo que este sí es un problema que me está anonadando la cabeza. Y el resultado de la multiplicación, a la misma columna. Creo que la solución sería algo como hacer que la tabla dependa de 2 querys, o que muestre uno al mismo tiempo el otro, sin importar el orden de los resultados, pero poco conozco acerca de bases de datos y por eso os pido ayuda.

EDITADO: Creo que he dado con la solución de alguna forma, primero procesamos un query con el cálculo, y luego intercambiamos el query del DataSource, con la otra operación, sin embargo, lo que me temo es que vaya a borrar la otra columna, creo que no conservaría los resultados del primer query. Ahora la cuestión es hacer que se conserven los datos de los 2 querys en el mismo DBGrid. Creo que con esto sí me pueden ayudar más fácil. (Aún no he probado, sólo estoy lanzando este razonamiento a ver que me pueden aconsejar).

Gracias de antemano.

OTRA VEZ EDITADO: Ya resolví el problema... puse 1 DBGrid por cada operación que necesitaba hacer, y todo el mundo ha quedado satisfecho hasta ahora. Gracias por la ayuda en impartida en este hilo.
__________________
Aprendiz de Embarcadero RAD Studio...

Última edición por HombreGordo fecha: 03-08-2008 a las 20:00:32.
Responder Con Cita
  #5  
Antiguo 08-08-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 19
rgstuamigo Va por buen camino
Wink

Hola HombreGordo por que no te haces procedimientos almacenados en tu Base de datos , y solamente te dedicas a llamarlo, tu procedimiento puede ser dinamico, ya que el servidor te cosina la respuesta y te la da todo como se dice en bandeja, y vos solamente en tu aplicacion, mostras los datos.
Espero que te sirva........"Es un consejo de un conejo"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Calcular el total de un campo efelix MS SQL Server 2 16-01-2007 23:56:11
Actualizar CAMPO del registro seleccionado con DBGrid,TQUERY y UpdateSQL cronixxx Conexión con bases de datos 0 05-07-2005 23:33:05
obtener el valor de un campo (Tquery) Yoli Conexión con bases de datos 5 08-04-2005 22:07:05
Calcular Campo calculado solo una vez mambo5cu Tablas planas 3 16-03-2005 22:38:59
actualizar tabla al calcular un campo autocalculado Telemaco Conexión con bases de datos 14 08-04-2004 17:07:14


La franja horaria es GMT +2. Ahora son las 13:12:30.


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