Problemas con Bases de Datos... Urgente!!!!!!!

ThanatosMK
29 de Junio del 2005
Que tal todos, tengo un problema urgente y espero que alguno de los que lee esto pueda darme un empujón... resulta que estoy vinculando una base de datos de acces con mi programa, (cosa facil) el problema está en que al realizar las consultas, me da un solo resultado.

La idea es poner dentro de un JTable toda la información de una tabla, pero no sale... solo sale el primer registro... lo que estoy haciendo es:

rslt = stmt.executeQuery("SELECT * FROM Pacientes");
int i=0,j=0;
while (rslt.next()){
while (j<6){
table.setValueAt(rslt.getObject("Nombre"),i,j); j++;
table.setValueAt(rslt.getObject("ApellidoP"),i,j); j++;
table.setValueAt(rslt.getObject("ApellidoM"),i,j); j++;
table.setValueAt(rslt.getObject("Direccion"),i,j); j++;
table.setValueAt(rslt.getObject("NdeA"),i,j); j++;
table.setValueAt(rslt.getObject("NdeP"),i,j); j++;
}
i++;
}

a ver si alguien sabe y me puede dar una mano... la verdad me urge!!!

asdf
29 de Junio del 2005
Hola

creo que debes poner a cero la variable j entre los dos while.

Saludos

ThanatosMK
29 de Junio del 2005
Siiiiiiiiiiiiiiiiii!!!!!!!!!!!!!! que chido!!!!!!!!!!!

No sé como se me pasó... por eso de estar checando los statement, los resultset, hasta los conection y sus campos y propiedades no había notado lo que tu bien dices, olvidé resetear la cuenta de j! muchas gracias!!!!!! de seguro huiera perdido otras 50 horas antes de darme cuenta de no ser por tu agudo ingenio!!! thansk a lot!!!

ThanatosMK
29 de Junio del 2005
Al estar revisando, descubrí un problema menor, lo he corregido y ha quedado el código así:

rslt = stmt.executeQuery("SELECT * FROM Pacientes");
int i=0,j=0;
rslt.first();
while (rslt.next()){
while (j<6){
table.setValueAt(rslt.getObject(j+1),i,j); j++;
}
i++;
}

Aun así, sigue apareciendo un solo registro de los que existen en la B.D. que puedo hacer?

pillete
29 de Junio del 2005
vamos a ver si te entendi yo algo similar utiliza este codigo..,
public int checa()
{
try
{

w = Y.createStatement ();
ResultSet filas;

filas = w.executeQuery ("SELECT * fROM nombre_tabla ");

int count = 0;

while (filas.next ())
{
count++;

texto.append(Stringn");

}

return count;
}
catch (SQLException e)
{
System.out.println("Error" + e);
return 1;
}
}

pillete
29 de Junio del 2005
vamos a ver si te entendi yo algo similar utiliza este codigo..,
public int checa()
{
try
{

w = Y.createStatement ();
ResultSet filas;

filas = w.executeQuery ("SELECT * fROM nombre_de_la_tabla ");

int count = 0;

while (filas.next ())
{
count++;

texto.append(filas.getString(1)+"n");
// donde (1) se refiere a la primera columna de la tabla si tienes 3 columnas seria filas.getString(2)+filas.getString(3) etc...
y texto es un textArea q lo declaras de la siguiente manera
private TextArea texto = new TextArea();

}

return count;
}
catch (SQLException e)
{
System.out.println("Error" + e);
return 1;
}
}

jose_insomnio
29 de Junio del 2005
uasndo un vector te cargaras la bas de datos enterita, o lo que saques del resulset

Prueba esto;

rslt = stmt.executeQuery("SELECT * FROM Pacientes");

while (rslt.next()){
Vector mivector=new Vector();
//carga el vector con los datos de cada columna de un registro, el nombre, el dni, lo que sea
mivector.add(rslt.getString("Nombre"));
mivector.add(rslt.getString("DNI"));
mivector.add(....)//tantas veces como columnas tenga la tabla

//añade a la tabla el vector
tabla.addRow(mivector);
//asi por cada registro se añadira una fila a tu tabla
}