Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2009, 20:05
fiorella3247
 
Fecha de Ingreso: febrero-2009
Mensajes: 101
Antigüedad: 15 años, 2 meses
Puntos: 0
Problemas con una sentencia SQL en VB 6.0

Hola Chicos y Chicas....
Ando molesta, porque me esta pasando algo en VB 6.0 que no encuentro logico... Les cuento de que se trata...

tengo una tabla llamada tabla_departamento que tiene una recursividad...
entonces la escructura de mi tabla quedo asi:

CREATE TABLE `tabla_departamento` (
`id_departamento` varchar(15) NOT NULL default '',
`nom_departamento` varchar(100) default NULL,
`dir_departamento` varchar(100) default NULL,
`descr_departamento` varchar(100) default NULL,
`dpto_id_departamento` varchar(15) default NULL,
PRIMARY KEY (`id_departamento`),
KEY `dpto_id_departamento` (`dpto_id_departamento`),
CONSTRAINT `tabla_departamento_ibfk_1` FOREIGN KEY (`dpto_id_departamento`) REFERENCES `tabla_departamento` (`id_departamento`)
) TYPE=InnoDB

Nota: la bd esta en MySQL

Ok... y luego kiero mostrar los departamentos con su direccion general... Es decir

id_dpto nombre_dpto id_direccion nombre_direccion
DPTO-10 Coor. Informatica DIR-01 Dir. Administracion
DPTO-07 Jefe de Museo DIR-02 Dir. Cultura
DIR-01 Dir.Administracion DIR-01 Dir.Administracion

y el query que hice para lograrlo fue este:

SELECT tabla_direccion.id_departamento,
tabla_direccion.nom_departamento,
tabla_departamento.id_departamento,
tabla_departamento.nom_departamento

FROM tabla_departamento,
tabla_departamento tabla_direccion

WHERE tabla_departamento.dpto_id_departamento=tabla_dire ccion.id_departamento;


Y de hecho me lo hace... y si se fijan en que la Dir. Administracion tiene como supervisor a ella misma ... es porque como no puedo dejar campos nulos le asigne su misma direccion....

Y bueno hasta aca todo chevere... pero resulta que cuando kiero cargar esa misma informacion de mi aplicacion de VB 6.0 me arreja la informacion errada... algo como esto:

id_dpto nombre_dpto id_direccion nombre_direccion
DPTO-10 Coor. Informatica DPTO-10 Coor. Informatica
DPTO-07 Jefe de Museo DPTO-07 Jefe de Museo
DIR-01 Dir.Administracion DIR-01 Dir.Administracion

en tal caso lo unico que estaria bien es la info que me arroja de las direcciones... y asi es como lo cargo en VB 6.0:

Private Sub form_load()
BD.conectarBD
Set Record = Conexion.Execute

("SELECT tabla_direccion.id_departamento,
tabla_direccion.nom_departamento,
tabla_departamento.id_departamento,
tabla_departamento.nom_departamento

FROM tabla_departamento,
tabla_departamento tabla_direccion

WHERE
tabla_departamento.dpto_id_departamento=tabla_dire ccion.id_departamento")


If Record.EOF = False Then
TextCodigo.Text = CStr(Record.Fields("id_departamento").Value)
TextNombre.Text = CStr(Record.Fields("nom_departamento").Value)
TextDireccion.Text = CStr(Record.Fields("dir_departamento").Value)
TextDescripcion.Text = CStr(Record.Fields("descr_departamento").Value)
TextIdDireccionGral.Text = CStr(Record.Fields("id_departamento").Value)
TextDireccionGral.Text = CStr(Record.Fields("nom_departamento").Value)
End If
End Sub

El select lo hago en una sola linea... pero se los coloque asi para que lo puedan ver bien

entonces... no se que ocurre... estoy llamando a los campos adecuados y el orden... pero no se que ocurre... porfa si pueden hecharme una mano seria de gran ayuda....

Gracias