Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 1mpuls0

#631
Cita de: WHK en  8 Julio 2013, 19:39 PM
Muestrame cual es la pagina y te doy el codigo para que quites el recuadro.

Saludos.

Ahora que lo veo tienes razón xD
#632
Lo que quiero decir es que tienes que quitar la propiedad autoincrement al campo, aunque también es posible dejando esta propiedad pero no tiene caso si al final vas a colocar un valor calculado.

Después de eso tienes que hacer una consulta para conocer el valor de tu último id

Código (sql) [Seleccionar]

select max(id) AS siguiente_id from libros


Supongo que estás utilizando además un lenguaje de programación, entonces lo que tienes que hacer es comparaciones.

*Pseudocódigo
if(resultado=NULL)
siguiente_id=1
else
siguiente_id=resultado+1


Entonces ahora tienes el valor de tu siguiente id a insertar.

Código (sql) [Seleccionar]

insert into libros values(siguiente_id, 'titulo');


Espero haberme explicado mejor.

Saludos.
#633
Hola.

De qué forma se puede conectar una aplicación de escritorio a una base de datos que se encuentra en un hosting?.

Lo estoy intentando de la siguiente manera.

Código (java) [Seleccionar]

   private static String database="mibasededatos";
   private static String user="miusuario";
   private static String password="micontrasenia";
   private static String host="midominio.com:3306";
   private static String server="jdbc:mysql://"+host+"/"+database;

.....

      try {
           Class.forName("com.mysql.jdbc.Driver");
           conexion = DriverManager.getConnection(server,user,password);

           System.out.println("Conexión a base de datos "+server);

       } catch (ClassNotFoundException ex) {
           System.out.println("Error cargando el Driver MySQL JDBC");
       } catch (SQLException ex) {
           System.out.println(ex);
       }


Esta es la excepción que muestra.


com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.ConnectException
MESSAGE: Connection timed out: connect

STACKTRACE:

java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:241)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at topo.JTopo.jButton1ActionPerformed(JTopo.java:147)
at topo.JTopo.access$000(JTopo.java:19)
at topo.JTopo$1.actionPerformed(JTopo.java:64)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)


** END NESTED EXCEPTION **



Last packet sent to the server was 2 ms ago.


Los datos de conexión están correctos, aunque tengo duda de como debo escribir el host al ser la aplicación de escritorio.
El JDBC también funciona correctamente.

Como podría hacerlo funcionar?, tengo que modificar algún archivo en mi hosting?, tengo que otorgar algún tipo de permiso del usuario que intenta conectar?, tengo que abrir algún puerto?.

Una solución que se me ocurre si lo anterior no es posible, es hacer peticiones a archivos .php por ejemplo desde mi aplicación de escritorio enviar por GET los datos a consultar, insertar o actualizar.

http://midominio/insertar.php?variable1=valor1&variable2=valor2

Como dato extra, les menciono que la aplicación la podría tener cualquier usuario, la aplicación no va dirigida a un grupo especifico de personas, lo menciono por si me dicen que tengo que agregar usuarios o ips.


Cualquier respuesta es buena xD.

EDITO

Problema real:
Mi problema fue que mi servidor tenía apagado el puerto para conexión remota. 3306

Solución:
Enviar un ticket para que el proveedor encendiera el puerto.

Saludos.
#634
Qué se supone que esperaba que hiciera? xD

Hay varias formas de hacerlo (hasta cierto punto)
Una es seleccionar el último id y sumarle uno.

Código (sql) [Seleccionar]

select max(id)+1 AS siguiente_id from tabla;


Código (sql) [Seleccionar]

SELECT LAST_INSERT_ID(id)+1 AS siguiente_id FROM tabla;


Debes tener cuidado cual vas a utilizar, lo digo por la cuestion de multiusuarios.

Saludos.
#635
Cita de: Novlucker en  8 Julio 2013, 19:39 PM
http://coj.uci.cu/24h/problem.xhtml?abb=1102

Supongo que la idea es implementarlo con un string y hacer los cálculos manuales :P

Sí, opino lo mismo, pero cómo qué?, habría que investigar bien las propiedades de un número cuando es multiplo de otro.

#636
PHP / Re: ayuda con tabla
8 Julio 2013, 19:41 PM
Ni si quiera haz respondido en tu post anterior si solucionaste tu problema, pero bueno.

Con respecto a este tema, solo debes de introducir todo el codigo que "imprime" tu tabla dentro del while.

Código (php) [Seleccionar]

    while ($row = mysql_fetch_row($result)){
         echo "<table border='1'><tr><td>Titulo</td><td>Autor</td><td>Editorial</td><td>Año</td></tr><tr>";

echo "<td>".$row[0]."</td><td>".$row[1]."</td>
              <td>".$row[2]."</td><td>".$row[3]."</td>";

        echo "</tr></table>";
    }


De esta forma cada que encuentre un registro creará una nueva tabla.

Por cierto utiliza las etiquetas GeSHi.

Saludos.
#637
Qué querías? xD es gratuito de algo se tienen que mantener :P

No creo que sea posible, a menos de que lo compres.

Saludos.
#638
Cita de: El Benjo en  8 Julio 2013, 18:53 PM
Yo nunca he necesitado de tal cosa, pero checa un tipo de variable llamada BigInteger, creo que eso es lo que buscas.

:huh: es C#

msdn.microsoft.com/es-es/library/s1ax56ch(v=vs.80).aspx

Cita de: ODAC333 en  6 Julio 2013, 06:48 AM
¿Cómo puedo almacenar números de hasta 1,000 dígitos?

WTF? xD

Quieres decir que tu número máximo puede podría ser: "9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"

Es una barbaridad.

No creo que haya un tipo de dato numérico para almacenar tal cantidad.

Estás seguro de lo que pides?
#639
Perdona creo que entendí mal.
Quieres que mientras se esté escribiendo y pasen cierto tiempo (3 segundos en este caso) el programa ya no permita que se pueda escribir y realice otra acción como las que mencionas?.

Intenta con br.close(); después de que pase el tiempo de escribir (después de Thread.sleep(3*1000); )

System.exit(0);

no te serviría para este proposito? xD

Saludos
#640
Por ahora se me ocurre que lo vayas realizando con un ciclo do while con el cual se tiene que leer caracter por caracter, obviamente tendrás un carácter de escape y una cadena para ir almacenando los caracteres.

Por ejemplo yo quiero escribir "Hola"

escribo la letra "H" y enseguida entra al do el buffer lee ese caracter y lo agrega a la variable de cadena para ir concatenando cada caracter, esto lo va a hacer mientras el caracter leido sea diferente a el caracter de escape.

Saludos.