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 07-05-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Trapicheando con tablas ;)

Hola a todos, me ha surgido el siguiente problema:
Tengo una tabla, con un campo con el numero de cliente y los campos de nombre y apellidos.
Pues tengo que meter en otra tabla temporal un registro con el campo del numero de cliente y tantos campos como registros con ese mismo numero haya en la tabla original.
No se si me he expicado bien, pondre un ejemplo.
Tenemos en la tabla 5 clientes con el numero de cliente 20. Pues necesito meter en la tabla temporal en un registro el campo del numero y tantos como clientes, osea en este caso 5 campos con los nombres. Y esto puede variar claro, segun los clientes que tengan el mismo numero.
El problema? que no tengo mu claro como hacerlo
Alguna idea?

LLevo un rato intentando montarme la pelicula y me he encontrado con un pequeño problema extra; ¿como puedo crear un campo en la tabla temporal en tiempo de ejecucion?
La verdad es que ahora mismo siento una especie de impotencia extraña, se lo que tengo que hacer mas o menos, pero no se como llevarlo a cabo


Un saludo y gracias anticipadas.

Última edición por acrophet fecha: 07-05-2004 a las 11:37:42.
Responder Con Cita
  #2  
Antiguo 07-05-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Yo no te he entendido demasiado bien, no sé los compañeros. ¿ Puedes volver a explicarlo ? ¿ Quizá con un ejemplo ?.

Seguramente deberías también decir con que base de datos trabajas, puesto que las tablas temporales se gestionan distinto en cada motor.

NOTA: Para añadir un campo a una tabla (sea temporal o no), tienes la instrucción del ALTER TABLE ... ADD FIELD .... (consulta la documentación de tu base de datos).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 07-05-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
vale, dare mas detalles.
Pues utilizo interbase,y la tabla temporal la creo con un rxmemorydata.
Todo eso de alter table y tal ya lo conozco, pero¿como lo hago en una tabla temporal?
Responder Con Cita
  #4  
Antiguo 07-05-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Yo tampoco entendí muy bien, sin embargo no sé porque no utilizás un query y luego se lo asignas al rxmemorydata, de esta manera todo se resume a un simple SELECT.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #5  
Antiguo 07-05-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
A ver, os lo expondre "asciimente"
Tenemos esta tabla:

numero nombre apellidos
-----------------------------------
30 pepe diaz
30 manolo sanchez
35 juan lopez
35 sandra perez


pues la temporal debe quedar tal que asi:

numero nombre1 nombre2 .....
-----------------------------------------------
30 pepe diaz manolo sanchez
35 juan lopez sandra perez


Osea que necesito crear tantos campos como clientes con ese mismo numero tenga.
Supongo que ahora habra quedado un poco mas claro lo que quiero. Sorry por no saber explicarlo bien.

PD. ahora que lo he visto posteado, no ha quedado como lo habia escrito(los espacios de separacion que habia puesto, se han reducido a uno solo), pero vamos se entiende lo que quiero hacer, no?

Un saludo.
Responder Con Cita
  #6  
Antiguo 07-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Hola.

Necesitas estos datos a nivel de base de datos, o solamente a nivel de aplicación??

Si haces un pequeño stored procedure que te vaya SubNumerando a los clientes, es fácil hacerlo con un DecisionCube...

Hago la pregunta/sugerencia porque me parece que estas mezclando el concepto de "tabla temporal" (que es un objeto a nivel de base de datos en motores como SQL Server) con una vista especial de los datos a nivel de la aplicación cliente..

Hasta luego.



pd. por cierto, para evitar el efecto (normal) de perdida de espacios, podes valerte de la etiqueta [ code ] (vínculo al manual en mi firma)
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 07-05-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Ante todo, gracias por la rapida respuesta
Yo creo que necesito eso a nivel de base de datos (creo).
Lo que intento es imprimir unas etiquetas, pero en cada etiqueta debe ir lo que en mi "tabla temporal" expongo.
Si listara las etiquetas tal cual tengo la tabla ahora, pues me saldria una para cada registro, y no es lo que yo pretendo. Yo quiero que los que coincidan en el numero, pues salgan en la misma.
Si me aclaras a que nivel tengo que referirme, mejor

Y nuevamente gracias por perder el tiempo con un pobre desvalido
Responder Con Cita
  #8  
Antiguo 07-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

No quisiera criticar tu diseño... pero creo que tenes un serio problema en la base de datos. No me imagino porque varios clientes podrian tener el mismo código... y mucho menos para que imprimirlos en una misma etiqueta??

Además... si es para imprimir etiquetas, tampoco veo porque el "invento" este tenga que estar a nivel de base de datos?? mas todavia!!!
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #9  
Antiguo 07-05-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Vale, igual no he expresado bien mi situacion.
El numero no es es un numero relacionado con el cliente realmente, sino con una tarjeta.
Todos los que tienen el mismo numero deben ir en la misma tarjeta(Titular-beneficiario).
No tengo problemas de diseño, quiza no explique bien el caso
Responder Con Cita
  #10  
Antiguo 07-05-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Cita:
Empezado por acrophet
No tengo problemas de diseño, quiza no explique bien el caso
Puede ser que no tengas problemas de diseño, pero sí parece que esa base de datos sí tiene problemas de normalización, al menos por los comentarios de tu último mensaje.

Saludos.
Responder Con Cita
  #11  
Antiguo 07-05-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Olvida mi mensaje anterior.
He vuelto a leer todo el hilo y yo estaba equivocado, ahora sí he conseguido entenderlo.

Disculpas y saludos.
Responder Con Cita
  #12  
Antiguo 07-05-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Bueno, al fin alguien ha entendido lo que quiero!!! jajaja
En fin, espero que alguien me pueda dar unas indicaciones de como hacer lo que me propongo.

Un saludo y gracias a todos por la colaboracion.
Responder Con Cita
  #13  
Antiguo 07-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

habia publicado una respuesta en este espacio, pero envista de tu mensaje anterior, prefiero eliminarla. Si te llegó por correo, pos tenes suerte de verla. Que lamentable expresión de exigencia!

Mejor lee la guia de estilo.

hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #14  
Antiguo 07-05-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 21
sanxpue Va por buen camino
Lightbulb Si que te..

Si que te metiste en un lio je je je

En realidad no es tan dificil.. por que no piensas que el mundo tiene 3 dimensiones y que la computadora la vemos de dos... weno pues usemos la segunda dimension de la compu.. osease a lo ancho.. je je je (ya se recibire criticas por el comentario, pero ahi va la idea..)

Primero no debes de crear tantos campos como nombres alla...por que puede tronar, puede tronar.. creo que su limite es de 255 campos..(si estoy mal ahi me avizan)

Por que no mejor creas un campo Blob...

Ordenas primero tu tabla x Numero de tarjeta y nombre para que salgan ordenaditos

despues con un simple While... hagamoslo..
pones un TListBox

Código:
Procedure....
Var
  Tar : Integer;
Begin
  Tar := 0;
  ListBox1.Items.Clear;
  While Not Tabla.EoF Do
  Begin
     //aqui supongo que tu nombre del campo es NumTar ahi lo cambias
     If Tabla.FieldByname('NumTar').AsInteger <> Tar Then
     Begin
        //Primero metemos
        If Tar <> 0 Then //por que luego luego va a querer meter y no podemos
                               //dejar eso por que esta vacio
        Begin
           //metemos a tu base
           TablaTemp.Insert;
           TablaTemp.fieldByName('NumTar').AsInteger := Tar;
           TablaTem.FieldByName('Nombres').Assign(ListBox1.Items);
           TablaTem.Post;
           ListBox1.Items.Clear;
           Tar := Tabla.FieldByname('NumTar').AsInteger;
        End
        Else
           Tar := Tabla.FieldByname('NumTar').AsInteger;
        ListBox1.Items.Add(Tabla.FieldByname('Nombre_Cliente').AsString);  
     End;
     Tabla.Next;
  End;
  //Ahora aqui volvemos a meter por los sobrantes...
  TablaTemp.Insert;
  TablaTemp.fieldByName('NumTar').AsInteger := Tar;
  TablaTem.FieldByName('Nombres').Assign(ListBox1.Items);
  TablaTem.Post;
End;
Ya obtenemos lo que quisiste.. ahora que le quieres hacer...
Tus datos ahora los veras asi...
Código:
Campo Nombres
30      Juan Charrasqueado
         Chuchita la Bolsearon
         Juana
         Perengana
         Sultana (Como iba a faltar la famosisima)
35      Petra
         Chana
         El Peyote Asesino
.
.
.


Nada mas faltaria que les quieras hacer esos campos....pero ya puedes hacerles los que quieras
__________________
saludos desde Puebla Mexico..
asanxt@hotmail.com
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'

Última edición por sanxpue fecha: 07-05-2004 a las 19:31:42.
Responder Con Cita
  #15  
Antiguo 10-05-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Cita:
Empezado por jachguate
habia publicado una respuesta en este espacio, pero envista de tu mensaje anterior, prefiero eliminarla. Si te llegó por correo, pos tenes suerte de verla. Que lamentable expresión de exigencia!

Mejor lee la guia de estilo.

hasta luego.

Oye, no se por que dices eso de lo de que lamentable expresion de exigencia, no era esa mi intencion para nada, si lo has entendido asi, lo siento. Yo siempre procuro dar las gracias por la ayuda recibida, porque se que se pierde tiempo en responder y ayudar. En ningun momento pretendo exigir nada.
No creo que me haya comportado mal con nadie, asi como nadie se ha comportado mal conmigo. De todas formas si te has sentido molestado, pido discultas.

Un saludo, y de nuevo gracias por la ayuda prestada.
Responder Con Cita
  #16  
Antiguo 10-05-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 21
sanxpue Va por buen camino
Lightbulb pero weno..

compañero acrophet... te sirvio la idea o que pasion je
__________________
saludos desde Puebla Mexico..
asanxt@hotmail.com
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
Responder Con Cita
  #17  
Antiguo 10-05-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Perdona tio, olvide responder a tu post
Pues la verdad es que con ese codigo que me pusiste, no sale lo que yo queria, pero vamos, tampoco esperaba eso. Te puedo decir que me ha ayudado muchisimo ya que gracias a tu explicacion y codigo, estoy afinando cada vez mas y estoy cerca de conseguir lo que busco.
Mil gracias compañero!!!!

Un saludo.
Responder Con Cita
  #18  
Antiguo 10-05-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 21
sanxpue Va por buen camino
Lightbulb Y que es ¡¡

Y que es lo que te falta...

si ya tienes las cadenas que quieres..weno si quieres cuentame que es lo que te falta...
__________________
saludos desde Puebla Mexico..
asanxt@hotmail.com
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
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


La franja horaria es GMT +2. Ahora son las 17:10:06.


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