Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-06-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Enumerar filas de un select

Hola.

Estoy manejando un simple select y necesito que unos de ellos sea un campo computado que me muestre la cantidad de filas, esto es.

Código:
fila  codigo nombre         cantidad
1    0001    Camisa         5
2    0544    zapatos        6
3    0547    Polerar         28
Se entiende la idea , basicamente eso, poder tener un campo fila que sin la necesidad de tenerlo almacenado en la base de datos.

Tambien puede crearlo directamente desde php, pero siempre pienso que es más optimo que estas cosas las haga el propio motor

Gracias....

PD1: En oracle existe un palabra reservada (función) llamada rownums que permite hacer esto.

PD2: ¿Cómo puedo formatear acá en el club las filas de más arriba?, he visto forista que lo hacen y les queda bastante ordenado, ¿existe alguna etiqueta que permita hacer esto?
__________________
No todo es como parece ser...
Responder Con Cita
  #2  
Antiguo 30-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, no sé si te servirá, pero ahí va:

Código SQL [-]
 set @RNUM = 0;
select @RNUM := @RNUM+1 row_number, Tabla.* from Tabla;

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 30-06-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Hola, no sé si te servirá, pero ahí va:

Código SQL [-] set @RNUM = 0; select @RNUM := @RNUM+1 row_number, Tabla.* from Tabla;


Saludos.
Hola, eso al parecer es para MS-SQL Server.

Hasta Luego .-
__________________
No todo es como parece ser...
Responder Con Cita
  #4  
Antiguo 30-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por lucasarts_18 Ver Mensaje
Hola, eso al parecer es para MS-SQL Server.

Hasta Luego .-
Ah Joder, es que todo se me parece .

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 30-06-2008
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
Yo acabo de probarlo con MySQL y sí funciona bien.

// Saludos
Responder Con Cita
  #6  
Antiguo 30-06-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Yo acabo de probarlo con MySQL y sí funciona bien.

// Saludos

bueno, tendré que probarlo, no lo hice ya que esas instrucciones me olian a microsoft, lo haré apenas llegue a casa, acá no trabajo con MySQL.

Bye.
__________________
No todo es como parece ser...
Responder Con Cita
  #7  
Antiguo 30-06-2008
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 lucasarts_18 Ver Mensaje
PD2: ¿Cómo puedo formatear acá en el club las filas de más arriba?, he visto forista que lo hacen y les queda bastante ordenado, ¿existe alguna etiqueta que permita hacer esto?
¿Te refieres a algo así?

Código:
+------+--------+---------+----------+ 
| fila | codigo | nombre  | cantidad |
+------+--------+---------+----------+ 
| 1    | 0001   | Camisa  |  5       |
+------+--------+---------+----------+ 
| 2    | 0544   | zapatos |  6       |
+------+--------+---------+----------+ 
| 3    | 0547   | Polerar | 28       |
+------+--------+---------+----------+
// Saludos
Responder Con Cita
  #8  
Antiguo 30-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Oye Roman, ¿cómo demonios logras cuadrar ese cuadro en el club?, nunca me sale así, perdón si me salgo del tema, no pude evitar hacer la pregunta.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #9  
Antiguo 30-06-2008
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
Si bebieras menos chela...

No, ya en serio, lo que yo hago es hacer la tabla en el block de notas, pues como usa letra de ancho fijo me permite formarla correctamente. Luego copio y pego en el mensaje dentro de una etiqueta [code]. Al pegar, la tabla se descuadra en el editor porque el editor de mensaje no usa letra de ancho fijo, pero no importa porque la etiqueta [code] sí, por lo que al mostrar el mensaje ya queda bien.

// Saludos
Responder Con Cita
  #10  
Antiguo 30-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Vale, gracias Roman, para la próxima ya sabré como hacerlo, muchas gracias.

Cita:
Empezado por Roman
Si bebieras menos chela...
Si dejas de invitarme tanto, tal vez
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #11  
Antiguo 30-06-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
¿Te refieres a algo así?

Código:
+------+--------+---------+----------+ 
| fila | codigo | nombre  | cantidad |
+------+--------+---------+----------+ 
| 1    | 0001   | Camisa  |  5       |
+------+--------+---------+----------+ 
| 2    | 0544   | zapatos |  6       |
+------+--------+---------+----------+ 
| 3    | 0547   | Polerar | 28       |
+------+--------+---------+----------+
// Saludos
Sí Román, gracias por el tips, a la noche lo intentaré desde casa, acá me da miedo, jejeje....
__________________
No todo es como parece ser...
Responder Con Cita
  #12  
Antiguo 01-07-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Lo he intentado y no me funciona.

Con esta frase y como bien dice nuestro compañero julián, me explicado como el culo, jeje.
Lo que quiero decir es que la columna donde debe aprecer el número de filas simplemente me aparece null.

Gracias .-
__________________
No todo es como parece ser...

Última edición por lucasarts_18 fecha: 01-07-2008 a las 14:50:19.
Responder Con Cita
  #13  
Antiguo 01-07-2008
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
Así probé yo y funciona:

Código PHP:
<?php
mysql_query
('set @fila = 0');
$filas mysql_query('select @fila := @fila + 1 as fila, clave, nombre from cliente')
?>
<table>
<tr>
    <th>Fila</th>
    <th>Clave</th>
    <th>Nombre</th>
</tr>
<?php while ($fila mysql_fetch_assoc($filas)): ?>
<tr>
    <td><?php echo $fila['fila'?></td>
    <td><?php echo $fila['clave'?></td>
    <td><?php echo $fila['nombre'?></td>
</tr>
<?php endwhile ?>
</table>
// Saludos
Responder Con Cita
  #14  
Antiguo 01-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Yo siempre lo he logrado hacerlo en php, más no he podido hacerlo en delphi con Zeos.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #15  
Antiguo 01-07-2008
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
Código Delphi [-]
ZQuery1.SQL.Text := 'set @fila = 0';
ZQuery1.ExecSQL;

ZQuery1.SQL.Text :=
  'select @fila := @fila + 1 as fila, clave, nombre from solicitante';
ZQuery1.Open;

// Saludos
Responder Con Cita
  #16  
Antiguo 01-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Vale, no sabía que se puede hacer dos sentencias con el mismo TZQuery y me ha funcionado bien. Gracias.

Saludos
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #17  
Antiguo 01-07-2008
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 enecumene
no sabía que se puede hacer dos sentencias con el mismo TZQuery
Estee.. Más bien es lo que no se puede hacer. A ver, hasta donde yo sé, MySQL no acepta sentencias múltiples en una misma consulta, por ello no se puede poner

Código Delphi [-]
ZQuery1.SQL.Add('set @fila = 0');
ZQuery1.SQL.Add('select @fila := @fila + 1 as fila, clave, nombre from solicitante');

y ejecutar la consulta. Hay que hacerlo por separado. No es que se hagan dos consultas, sólo estás reusando el ZQuery. Lo mismo podría hacerse con dos ZQuery

Código Delphi [-]
ZQuery1.SQL.Text := 'set @fila = 0';
ZQuery1.ExecSQL;

ZQuery2.SQL.Text :=
  'select @fila := @fila + 1 as fila, clave, nombre from solicitante';
ZQuery2.Open;

// Saludos
Responder Con Cita
  #18  
Antiguo 01-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Ahh ok, ya entendí, ahora lo tengo más claro, de nuevo gracias Roman.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #19  
Antiguo 02-07-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
ahora que he visto lo de la ejecución de dos sentencias como bien ha comentado Roman, me gustaría saber si con un TAdoQuery + ODBC + MySQL funcionaría también....
Responder Con Cita
  #20  
Antiguo 02-07-2008
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
Pues podrías hacer la prueba, yo ya la hice con PHP y Zeos, te toca a tí

Pero no veo razon por la cual no funcione, ya que es una característica de MySQL y no de las componentes que se usen. El único requisito que veo es que ambas consultas se realicen bajo la misma conexión.

// 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
Enumerar las Pc's en una LAN Saindoft Redes 1 02-06-2008 22:48:24
Enumerar usuarios conectados a tu pc fide API de Windows 4 21-01-2007 17:08:50
Como Validar Filas en Select? AGAG4 SQL 9 30-12-2005 20:05:19
Como enumerar filas de un DBGrid sin agregar otro campo Velia Varios 2 06-12-2005 08:58:57
Enumerar con Letras torito Varios 4 20-07-2005 14:57:23


La franja horaria es GMT +2. Ahora son las 01:24:12.


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