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
