Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

ayuda con relacion entre dos tablas

Estas en el tema de ayuda con relacion entre dos tablas en el foro de Bases de Datos General en Foros del Web. aqui esta el codigo de mi programa lo que tiene que hacer es relacionar dos tablas y navegar en ellas con los botones primero ultimo ...
  #1 (permalink)  
Antiguo 29/11/2005, 14:54
 
Fecha de Ingreso: septiembre-2004
Mensajes: 212
Antigüedad: 20 años, 2 meses
Puntos: 0
ayuda con relacion entre dos tablas

aqui esta el codigo de mi programa lo que tiene que hacer es
relacionar dos tablas y navegar en ellas con los botones primero ultimo siguiente y anterior eso lo hace sin ningun problema
borrar un registro tambien lo hace
agregar tambien agrega
pero el buscar me busca solo en una tabla y nose como hacer para que busque en las dos me pueden explicar eso como hacerlo porfavor
quite parte del codigo porque no me dejaba mandar mas de 10000 caracteres
Código PHP:
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class 
AccessBD extends Frame implements ActionListener 
{
   
    
Button btnSigbtnAntbtnPrimbtnUltbtnBorrarbtnActualibtnBorbtnAcep;
    
Button btnLimpbtnGrabbtnBusc;
    
TextField txtRuttxtNomtxtApelltxtDirtxtBusca;
    
TextField txtNota1txtNota2txtNota3;
    
Label lblError = new Label("");
    
Connection cCon;
    
ResultSet rsAlumno;
    
ResultSet rsNotas;
    
Statement stStat,stStat1;
    
String strSQLstrSQL1;
    public 
AccessBD()
    {
    
        
setLayout(null);
        
setLocation(200,200);
        
setSize(600,450);
        
setTitle("NAVEGACION DE BD");
    
        

    
btnPrim.addActionListener(this);
    
btnSig.addActionListener(this);
    
btnAnt.addActionListener(this);
    
btnUlt.addActionListener(this);
    
btnBor.addActionListener(this);
    
btnLimp.addActionListener(this);
    
btnGrab.addActionListener(this);
    
btnBusc.addActionListener(this);
    
btnAcep.addActionListener(this);
   



    
String sDriver ="sun.jdbc.odbc.JdbcOdbcDriver";
    
String sUrl "jdbc:odbc:AccessBD" ;
    try {
        Class.
forName(sDriver);
            }
    catch(
ClassNotFoundException ex)
    {
    }
    try{

        
cCon DriverManager.getConnection(sUrl"""");     
        
stStat cCon.createStatement(10051008); 

                      
        
stStat1 cCon.createStatement(10051008);
    
String sSql2 "Select * from alumno";

        
rsAlumno stStat.executeQuery(sSql2);
        
rsAlumno.next();
        
mostrar();
  }

        catch(
Exception ex){ }
    
btnAnt.setEnabled(false);
    
btnPrim.setEnabled(false);
    
btnAcep.setEnabled(false);

    }

    public 
void actionPerformed(ActionEvent ev)
    {
        try{

            if (
ev.getSource()== btnPrim)
        {
            
rsAlumno.first();
            
mostrar();
            
btnSig.setEnabled(true);
            
btnAnt.setEnabled(false);
            
btnUlt.setEnabled(true);
        }
            if (
ev.getSource()== btnSig)
        {

            
rsAlumno.next();

            if (
rsAlumno.isLast())
            {
                
btnSig.setEnabled(false);
                
btnUlt.setEnabled(false);
            }
            
mostrar();
            
btnAnt.setEnabled(true);
            
btnPrim.setEnabled(true);
        }



            if (
ev.getSource()== btnAnt)
        {
            
rsAlumno.previous();
            if (
rsAlumno.isFirst())
            {
                
btnAnt.setEnabled(false);
                
btnPrim.setEnabled(false);
            }

            
mostrar();
            
btnSig.setEnabled(true);

            
btnUlt.setEnabled(true);
        }
            if (
ev.getSource()== btnUlt)
        {
            
rsAlumno.last();
            
mostrar();
                
btnAnt.setEnabled(true);
                
btnSig.setEnabled(false);
                
btnPrim.setEnabled(true);
                
btnUlt.setEnabled(false);
        }

        if(
ev.getSource() == btnBor)
        {

            try
            {
            
String sSql1 "Delete from alumno Where rut='" txtRut.getText() + "'";
            
stStat.execute(sSql1);
            
sSql1 "Select * from alumno";
            
rsAlumno =     stStat.executeQuery(sSql1);
            
rsAlumno.next();
            
mostrar();


            } catch(
SQLException Se){System.out.println("error");            }

            
btnAnt.setEnabled(false);
            
btnSig.setEnabled(true);
            
btnPrim.setEnabled(false);
        }





        if (
ev.getSource()== btnLimp)
        {
            
btnGrab.setEnabled(true);
        
txtRut.setText("");
        
txtNom.setText("");
        
txtApell.setText("");
        
txtDir.setText("");
        
txtNota1.setText("");
        
txtNota2.setText("");
        
txtNota3.setText("");

        
btnLimp.setEnabled(false);
        
btnBor.setEnabled(false);
        
btnUlt.setEnabled(false);
        
btnAnt.setEnabled(false);
        
btnPrim.setEnabled(false);
        
btnSig.setEnabled(false);
        
btnBusc.setEnabled(false);

        }

        if (
ev.getSource()== btnGrab)
        {
            try
            {
            
stStat.execute("Insert Into alumno (rut,nombre,apellido,direccion)" +    "values ('" txtRut.getText()+ "','" txtNom.getText()+"','"+txtApell.getText()+"','"+txtDir.getText()+"')");
            
stStat1.execute("Insert Into nota (rut,nota1 ,nota2 ,nota3)" +    "values ('" txtRut.getText()+ "','" txtNota1.getText()+ "','" txtNota2.getText()+"','"+txtNota3.getText()+"')");
                
//mostrar();

            
String sSql1 "Select * from alumno";
            
rsAlumno =     stStat.executeQuery(sSql1);
            
rsAlumno.next();
            
mostrar();

            }
            catch(
SQLException se){    System.out.print("no grabo");        }

            
//rsAlumno.last();
            //mostrar();


            
btnLimp.setEnabled(true);
            
btnGrab.setEnabled(false);

            
btnBor.setEnabled(true);
            
btnUlt.setEnabled(true);
            
btnAnt.setEnabled(true);
            
btnPrim.setEnabled(true);
            
btnSig.setEnabled(true);
            
btnBusc.setEnabled(true);

        }


        
//fin grabar

        
if (ev.getSource()== btnBusc)
        {

            
String p,n="",c=""s="";
            
String a=""b=""e=""d="";
            
String q=txtBusca.getText();
            
int i=0;
            try
            {

                
stStat.close();

                
stStat=cCon.createStatement();
                
stStat1=cCon.createStatement();
                
strSQL="Select * from alumno";
                
strSQL1="Select * from nota";

                
rsAlumno=stStat.executeQuery(strSQL);
                
rsNotas=stStat1.executeQuery(strSQL1);
                while((
rsAlumno.next()) && (i==0))
                {

                    
p=rsAlumno.getString("rut");


                    if(
p.equals(q))
                    {

                        
n=rsAlumno.getString("nombre");
                        
c=rsAlumno.getString("apellido");
                        
s=rsAlumno.getString("direccion");
                        
a=rsNotas.getString("nota1");
                        
b=rsNotas.getString("nota2");
                               
e=rsNotas.getString("nota3");
                        
i=1;
                    }
                }
                if(
i==1)
                {
                    
txtRut.setText(q);
                    
txtNom.setText(n);
                    
txtApell.setText(c);
                    
txtDir.setText(s);


                }
                else
                {
                
txtRut.setText("Usuario no existe");
                
txtNom.setText("Usuario no existe");
                
txtApell.setText("Usuario no existe");
                
txtDir.setText("Usuario no existe");
                
txtBusca.setText("Usuario no existe");
                }

            }
            catch(
SQLException se){System.out.print("error al buscar");        }

        
btnAcep.setEnabled(true);

        }

        if (
ev.getSource()== btnAcep)
        {

            
String sSql1 "Select * from alumno";
            
rsAlumno =     stStat.executeQuery(sSql1);
            
rsAlumno.next();
            
mostrar();

            
btnAcep.setEnabled(false);
            
btnAnt.setEnabled(false);
            
btnPrim.setEnabled(false);
            
btnSig.setEnabled(true);
            
btnUlt.setEnabled(true);
        }



        }




        catch(
Exception ex){ setTitle("ERROR 2");    }

    }


    public static 
void main(String args[])
    {
        
// Visualizando la Clase
        
new AccessBD().setVisible(true);

    }


    
//prosedimiento para mostrar

    
public void mostrar()
    {

        try
        {

        
txtRut.setText(rsAlumno.getString("rut"));
        
txtNom.setText(rsAlumno.getString("nombre"));
        
txtApell.setText(rsAlumno.getString("apellido"));
        
txtDir.setText(rsAlumno.getString("direccion"));

        
String sSql3 "Select * from nota Where rut='" txtRut.getText() + "'";
        
rsNotas stStat1.executeQuery(sSql3);
        if (
rsNotas.next())
                
mostrarNota();

         else{
             
txtNota1.setText("");
            
txtNota2.setText("");
            
txtNota3.setText("");


         }




        }
        catch(
Exception ex){setTitle("ERROR 1");        }


    }

        public 
void mostrarNota()
    {
        try
        {



        
txtNota1.setText(rsNotas.getString("nota1"));
        
txtNota2.setText(rsNotas.getString("nota2"));
        
txtNota3.setText(rsNotas.getString("nota3"));

        }
        catch(
Exception ex){setTitle("ERROR ");        }


    }


__________________
http://trucosinformatica.blogspot.com/
http://rickblogblog.blogspot.com/ el peor problema de facebook
  #2 (permalink)  
Antiguo 29/11/2005, 16:14
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
bueno segun pude ver en tu codigo creo que el problema puede ser en tus resultsets
Código PHP:
                rsAlumno=stStat.executeQuery(strSQL);
                
rsNotas=stStat1.executeQuery(strSQL1);
                while((
rsAlumno.next()) && (i==0)) 
                {
                    
p=rsAlumno.getString("rut");
                    if(
p.equals(q))
                    {
                        
n=rsAlumno.getString("nombre");
                        
c=rsAlumno.getString("apellido");
                        
s=rsAlumno.getString("direccion");
                        
a=rsNotas.getString("nota1");
                        
b=rsNotas.getString("nota2"); // no avanza posicion
                        
e=rsNotas.getString("nota3"); // no avanza posicion
                        
i=1;
                    }
                } 
dentro de tu ciclo while avanzas tu ResultSet rsAlumno pero no avanzas tu ResultSet rsNotas y es por eso que pareciera que hiciera tu consulta tienes que avanzar tambien el ResultSet de notas, cya
  #3 (permalink)  
Antiguo 30/11/2005, 00:30
 
Fecha de Ingreso: noviembre-2005
Ubicación: Costa Rica
Mensajes: 4
Antigüedad: 19 años
Puntos: 0
hey amigo te paso este codigo, se te va hacer mas facil:
package Generales;


import java.sql.*;


/**
*
* @author Marcos Andres
*/
public class ComunDB {



/*Realiza la coneccion con la base de datos*/
public Connection ConectarBD()
{
Connection conn;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newI nstance();
conn = DriverManager.getConnection("jdbc:odbc:PostgreSQL" );
return conn;
}
catch(Exception ex){
System.out.println(ex.toString());
return null;
}
}



/*Inserta en la base de datos True si todo bien, False en caso contrario*/
public boolean InsertarBD(String Query)
{
try{
Connection conn = ConectarBD();
Statement sql = conn.createStatement();
sql.executeUpdate(Query);
conn.close();
return true;
}
catch(Exception ex){
System.out.println(ex.toString());
return false;
}
}

/*Hace una consultada en la base de datos. Retorna un conjunto de
datos si todo transcurre normal, en caso contrario retorna un null*/
public ResultSet ConsultarBD(String Query)
{
try{
Connection conn = ConectarBD();
Statement sql = conn.createStatement();
ResultSet resultado = sql.executeQuery(Query);
//conn.close();
return resultado;
}
catch(Exception ex){
System.out.println(ex.toString());
return null;
}
}

}

/*--------------------------*/
//solo crea una instancia de esta clase
ComunDB con = new ComunDB();
//realiza una funcion de insertar XXX
boolean insertar pais(parametros){
String Query = "select * from x where parametros";
con.InsertarBD(query);
}
//para consultar igual, crea una variable de tipo resultset y a esta se le asigna el var = con.consultarBD(query); y listo, es mas facil y ordenado

espero q te sirva de algo
saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:23.