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

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2008
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Smile TQuery y calcular campo

Buenas. El problema es el siguiente, tengo un TQuery y me gustaría crear una nueva columna que calculase la multiplicación de una columna llamada "UNIDAD" con un TEdit que contiene multiplicador. Intenté hacer algo como esto (parecido):
Código SQL [-]
SELECT *, UNIDAD * '+#39+editMultiplicador.Text+#39' AS RESULTADO FROM mitabla;
Pero no funciona, y a veces da un error de "Invalid use of keyword" o "Invalid Token".

Básicamente lo que deseo es que la columna UNIDAD se multiplique por un entero en común y despliegue un resultado con respecto a su fila correspondiente, pero es lo que no he logrado resolver.

Gracias de antemano. Si alguien conoce una manera mejor de resolver esto, también se lo agradecería.
__________________
Aprendiz de Embarcadero RAD Studio...
Responder Con Cita
  #2  
Antiguo 27-07-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola

Código SQL [-]
SELECT UNIDAD * +'editMultiplicador.Text'+ AS RESULTADO FROM mitabla;

Saludos
Responder Con Cita
  #3  
Antiguo 27-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, ten en cuenta de distinguir tambien el caso en que el texto este vacio o no sea un numero. saludos.
Responder Con Cita
  #4  
Antiguo 27-07-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola, si estoy entendiendo bien... lo que se busca multiplicar una columna (mejor dicho campo) por un valor.

El problema es que el multiplicador que se pasa está en formato string, por tanto deben pasarlo a integer.

No se que base de datos usas pero una solución es emplear cast (1):

Código SQL [-]
select tu_campos, el_campo * cast('5' as integer) as resultado from tu_tabla;

Otra opción es lanzar la consulta desde Delphi, empleando parámetros.

(1) Debes ver si el motor de base de datos que usas soporta cast.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 27-07-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Igual resulta más fácil utilizar una variable:

Código Delphi [-]
var
n:Integer;
begin
try
n:=StrToInt(Edit1.Text);
select tu_campos, el_campo * n as resultado from tu_tabla;
Except
ShowMessage('Atención:Se ha producido un error en la conversión.');
end;
end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 28-07-2008
mzell mzell is offline
Registrado
 
Registrado: jul 2006
Ubicación: La Ceiba, Honduras
Posts: 7
Poder: 0
mzell Va por buen camino
Hola.
Esta es otra alternativa (además sirve para extender lo comentado por el compañero Delphius sobre los parámetros).
Empleando el componente ADODataset:

Código Delphi [-]
ADODataSet1.CommandText := 'SELECT *, UNIDAD * :Multiplicador AS RESULTADO FROM mitabla';
ADODataSet1.Parameters.ParamByName('Multiplicador').Value := strtoint(Edit1.Text);
Responder Con Cita
  #7  
Antiguo 28-07-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
Table1.Sql.Text := 'SELECT *, UNIDAD * :Multiplicador AS RESULTADO FROM mitabla';
Table1.Parameters.ParamByName('Multiplicador').Value := strtoint(Edit1.Text);
Los parámetros son buenos, sobre todo cuando hay varios datos que quieres sacar de la sentencia, pero para sacar un solo dato, pues.....
Saludos
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 15:37:33.


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