UN GRAN RETO PARA TI A VER SI PUEDES AYUDARME
ABAJO ESTA ESPECIFICADO EL PROBLEMA
import java.sql.*;
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class Conexionc{
private String database,filename,direccion;//Variables para la conexion
Connection con;
Statement s;
public Conexionc(){
conectar();
}
//Metodo conexion a la BD
public void conectar(){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
filename = "C:/Steven/averque/Trivia/Trivia.mdb";//ruta para localizar la BD
database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database+= filename.trim() + ";DriverID=22;READONLY=true}";
con = DriverManager.getConnection( database ,"","");
s = con.createStatement();//ResultSet.?
}
catch (Exception e) {
System.out.println("Error: " + e);
}
}
public String obtener_pregunta(String cad){//Insercion (sql)
String n1="";
try {
System.out.println(cad);
s.execute("Select pregunta From "+cad);
ResultSet rs = s.getResultSet();
if(rs!=null){
while ( rs.next()){
HE AQUI EL PROBLEMA NO SE COMO ASIGNARLE A "n1" UN VALOR ALEATORIO DE CUALQUIERA DE LOS REGISTROS DE LA B.D. SIEMPRE ME RETORNA EL ULTIMO REGISTRO DE LA B.D. Y OCUPO QUE ME RETORNE CUALQUIERA DE LOS 10 REGISTROS QUE TENGO EN LA TABLA
n1=rs.getString("pregunta");
}
}
}
catch (Exception e) {
System.out.println("Error: " + e);
}
return n1;
}
import java.sql.*;
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class Conexionc{
private String database,filename,direccion;//Variables para la conexion
Connection con;
Statement s;
public Conexionc(){
conectar();
}
//Metodo conexion a la BD
public void conectar(){
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
filename = "C:/Steven/averque/Trivia/Trivia.mdb";//ruta para localizar la BD
database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database+= filename.trim() + ";DriverID=22;READONLY=true}";
con = DriverManager.getConnection( database ,"","");
s = con.createStatement();//ResultSet.?
}
catch (Exception e) {
System.out.println("Error: " + e);
}
}
public String obtener_pregunta(String cad){//Insercion (sql)
String n1="";
try {
System.out.println(cad);
s.execute("Select pregunta From "+cad);
ResultSet rs = s.getResultSet();
if(rs!=null){
while ( rs.next()){
HE AQUI EL PROBLEMA NO SE COMO ASIGNARLE A "n1" UN VALOR ALEATORIO DE CUALQUIERA DE LOS REGISTROS DE LA B.D. SIEMPRE ME RETORNA EL ULTIMO REGISTRO DE LA B.D. Y OCUPO QUE ME RETORNE CUALQUIERA DE LOS 10 REGISTROS QUE TENGO EN LA TABLA
n1=rs.getString("pregunta");
}
}
}
catch (Exception e) {
System.out.println("Error: " + e);
}
return n1;
}
Obteniendo un int random de la clase Math y usuando el método relative(int Row) del Resulset para ubicar el cursor en una fila determinada
Sencillo, vas bien en lo que es la consulta, solo agrega algo asi
boolean stopQuery = true;
Random rand = new Random();
int randomNum = //numero aleatorio <= 10
int actualRecord = 0;
while(rs.next() && stopQuery)
{
if(actualRecord==randomNum)
{
stopQuery = false;
}
String data = rs.next(1);
}
Asi generas un aleatorio menor = de 10 el rs se recorrera hasa que el numero aleatorio sea = al registro actual.
Espero te sirva.
boolean stopQuery = true;
Random rand = new Random();
int randomNum = //numero aleatorio <= 10
int actualRecord = 0;
while(rs.next() && stopQuery)
{
if(actualRecord==randomNum)
{
stopQuery = false;
}
String data = rs.next(1);
}
Asi generas un aleatorio menor = de 10 el rs se recorrera hasa que el numero aleatorio sea = al registro actual.
Espero te sirva.
