• Martes 8 de Julio de 2025, 16:18

Mostrar Mensajes

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


Mensajes - m0skit0

Páginas: 1 ... 55 56 [57] 58 59 ... 100
1401
C/C++ / Re: recomendacionea para matar este proceso??
« en: Miércoles 18 de Marzo de 2009, 10:00 »
Cita de: "pacorubio77"
pero de manera recursiva ya si que no puedo matar los procesossssss.....que alguien me ayudeeeeeee
No te preocupes, seguro que es más fácil de lo que ahora parece  ;)

Cita de: "pacorubio77"
es necesario que ponga codigo?
Creo que es evidente, ¿no te parece?

P.D: ¿te funcionó de la otra forma?

1402
C/C++ / Re: Errores al compilar
« en: Miércoles 18 de Marzo de 2009, 09:58 »
Utiliza las etiquetas de código, nombra el número de la/s línea/s que te da/n error y especifica qué error.

Un poco de tu parte no haría daño a los que queremos ayudarte  <_<

1403
La taberna del BIT / Añadir más tutoriales
« en: Martes 17 de Marzo de 2009, 18:26 »
Hola a tod@s

Creo que puede ser una buena idea que añadamos tutoriales como posts permanentes ("stickys") en los foros que cada uno consideremos, como ya los hay, para los problemas más comunes o lo que veamos más solicitado en Internet y otros foros. Pienso que puede llegar a ser una buena forma de aumentar drásticamente el número de visitas redirigidas por Google.

¿Qué os parece?  :unsure:

1404
Dudas informáticas / Re: Duda Sobre Redes
« en: Martes 17 de Marzo de 2009, 18:15 »
Hola de nuevo  ;)

¿260 computadoras en un solo segmento de red? ¿Un solo dominio de colisión?  :ph34r: Eso tiene que ir lentísimo y me quedo corto. Te aconsejo que pienses en utilizar switches.

En fin, para tu caso es posible que puedas cambiar la clase de red que usas, que por lo que me cuentas tiene que ser una clase C (máx. 254 direcciones IP). Podrías pasar a una de clase B, por ejemplo: 172.16.0.0 - 172.16.255.255 con máscara 255.255.0.0, para un máximo de 65.534 direcciones IP. No tengas miedo en usar estas direcciones puesto que son privadas, es decir, son para equipos que no tienen acceso a Internet o lo tienen a través de NAT u otro sistema parecido.

Para este cambio sólo debes configurar el router para cambiar las direcciones IP que reparte a los equipos de la red como has comentado con DHCP.

También puedes subdividir la red en 2 redes privadas de clase C poniendo un router entre ambas que dirija el tráfico, aunque esta opción es más cara y un poco más complicada de implementar.

Espero te haya sido de ayuda, salud

1405
Bases de Datos / 4. Acceso a la información de la base de datos
« en: Martes 17 de Marzo de 2009, 17:51 »
Código: Visual Basic
  1. 'Una conexión, un recordset y una sentencia SQL
  2. Private Sub Recoger_Datos(ByRef dbConn As ADODB.Connection, ByRef dbRS As ADODB.Recordset, ByVal strSQL As String)
  3.     'Creamos el recordset
  4.     Set dbRS = New ADODB.Recordset
  5.     'Definimos el uso del cursor en local, es decir, se descarga todo el recordset desde el servidor y no se accede a él por cada consulta
  6.     dbRS.CursorLocation = adUseClient
  7.     'Recuperamos la información según la sentencia SQL estándar que tengamos almacenada en strSQL
  8.     dbRS.Open strSQL, dbConn, adOpenStatic, , adCmdText
  9. End Sub
  10.  
Con

Código: Visual Basic
  1. dbRS.Fields(Indice).Value
  2.  
obtenemos el valor de los diferentes campos del registro activo. Indice puede ser un entero positivo o también una cadena de caracteres que defina el nombre del campo de datos dentro del registro (la sensibilidad a la capitalización depende de la base de datos).

Para movernos en los registros del recordset devuelto, tenemos:

Código: Visual Basic
  1. 'Primer registro
  2. dbRS.MoveFirst
  3. 'Último registro
  4. dbRS.MoveLast
  5. 'Siguiente registro
  6. dbRS.MoveNext
  7. 'Anterior registro
  8. dbRS.MovePrevious
  9. 'Moverse N registros hacia adelante
  10. dbRS.Move N
  11.  
Para controlar el tamaño del conjunto de registros (recordset) y su final, tenemos:

Código: Visual Basic
  1. 'Número de registros del conjunto
  2. dbRS.RecordCount
  3. 'Posición absoluta del registro
  4. dbRS.AbsolutePosition
  5. 'Devuelve verdadero si la posición actual está justo antes del primer elemento
  6. dbRS.BOF
  7. 'Devuelve verdadero si la posición actual está justo después del último elemento
  8. dbRS.EOF
  9.  
Bueno, creo que he cubierto lo básico, espero les haya sido de utilidad y ya saben:  :comp:  :beer:

1406
Bases de Datos / 3. Iniciar y finalizar una conexión a la base de datos
« en: Martes 17 de Marzo de 2009, 17:31 »
Vamos directamente con código comentado:

Código: Visual Basic
  1. 'Iniciamos la conexión con la base de datos usando un objeto ADODB.Connection
  2. Private Sub Iniciar_Base_Datos(ByRef dbConn As ADODB.Connection)
  3.     'Creamos el objeto conexión
  4.    Set dbConn = New ADODB.Connection
  5.    
  6.     With dbConn
  7.         'Controlador de Oracle para Oracle, también podéis usar el de Microsoft, MSORADB.Oracle
  8.        'Microsoft.Jet.OLEDB.4.0 para Access
  9.        'SQLOLEDB o MSDASQL para SQL Server
  10.        .Provider = "OraOLEDB.Oracle"
  11.  
  12.         'El nombre del origen de datos que hemos especificado en el administrador de datos de ODBC
  13.        .Properties("Data Source") = "Nombre_Origen_Datos"
  14.  
  15.         'Usuario para el servidor de la base de datos
  16.        .Properties("User Id") = "usuario"
  17.  
  18.         'Contraseña para el servidor de la base de datos
  19.        .Properties("Password") = "contraseña"
  20.  
  21.         'Abrimos conexión
  22.        .Open
  23.     End With
  24. End Sub
  25.  
Ahora con

Código: Visual Basic
  1. dbConn.State
  2.  
podemos saber si la conexión ha sido un éxito o un fracaso. Este atributo es un booleano que toma el valor verdadero si la conexión se ha realizado sin problemas y falso en caso de fallo.

Para finalizar la conexión, nada más simple que

Código: Visual Basic
  1. Private Sub Finalizar_Base_Datos(ByRef dbConn As ADODB.Connection)
  2.     'Cerramos la conexión
  3.    dbConn.Close
  4.     'Desreferenciamos el objeto
  5.    Set dbConn = Nothing
  6. End Sub
  7.  

Vamos ahora al acceso a los datos.

1407
Bases de Datos / 2. Configurando Visual Basic para ADO
« en: Martes 17 de Marzo de 2009, 17:16 »
Ejecutamos el IDE de Visual Basic 6 y creamos un proyecto de prueba para un EXE estándar. Una vez creado, pinchamos en el menú superior en "Proyecto" y luego en "Referencias...", con lo que nos saldrá un diálogo tal que así:

[attachment=0:362a8yiw]refVB.jpg[/attachment:362a8yiw]
Para activar ADO hay que seleccionar "Microsoft ActiveX Data Objects 2.0 Library" y "Microsoft ActiveX Data Objects Recordset 2.5 Library". Aceptamos y listo.

Ahora ya tenemos nuestro entorno tanto de Windows como de VB6 listo para empezar a codificar  :good:

1408
Bases de Datos / 1. Preparando el entorno
« en: Martes 17 de Marzo de 2009, 17:08 »
Antes de cualquier cosa debemos instalar un cliente de la base de datos a la que vayamos a acceder de forma remota.

Hecho esto, las conexiones las vamos a gestionar a través del proveedor de datos de Windows, el ODBC (Open Database Connectivity): Panel de control -> Herramientas administrativas -> Orígenes de datos ODBC.

Una vez en el administrador de datos de ODBC, veremos una ventana parecida a la siguiente:

[attachment=1:1s3624j8]adminODBC.jpg[/attachment:1s3624j8]
Ahí ya decidimos dónde queremos añadir nuestro origen de datos, si en el DSN (Data Source Name) de usuario, sistema o archivo (fijaos en la explicación en la parte inferior de la ventana para decidir cuál os conviene más). Una vez os decidáis, le dais a "Agregar..." y seleccionais el controlador/driver de la/s base/s de datos que corresponda/n:

[attachment=0:1s3624j8]adddriverODBC.jpg[/attachment:1s3624j8]
Después de seleccionarlo también lo podéis volver a configurar con el botón de "Configurar..." (¿ah, sí?). Es importante recordar el nombre que le hemos puesto a nuestro origen de datos. También suele ser necesario configurar el propio cliente de la base de datos para definir la conexión y demás (IP y puerto del servidor, por ejemplo). Ahí consultad la documentación de vuestra base de datos.

Una vez hecho esto, hay que preparar el entorno de Visual Basic 6 para poder definir los tipos que nos ofrece ADO.

1409
Bases de Datos / Usar ADO con Visual Basic para conectar a bases de datos
« en: Martes 17 de Marzo de 2009, 16:43 »
He aquí un pequeño tutorial sacado de mi experiencia estos últimos días con Visual Basic 6 y bases de datos (Oracle en concreto). En teoría usando ADO (ActiveX Data Objects) no debería importar la base de datos a la que se acceda, el procedimiento debería ser el mismo para todas. Lo único que habría que modificar es el proveedor y tener en cuenta las peculiaridades de cada base de datos con respecto al cumplimiento del estándar SQL y las sentencias SQL propietarias.

Precisamente por esto último decidí usar ADO y no DAO, por ejemplo, que puede dar mejor rendimiento si sólo vamos a trabajar con bases de datos Jet (Microsoft Access). Sin embargo, Access no es una base de datos adecuada para un proyecto de gran envergadura; por esto mismo Microsoft decidió desarrollar SQL Server.

Finalmente recalcaros que este mini-tutorial va enfocado hacia bases de datos remotas, en la que nuestro equipo tiene el cliente y en otro se encuentra el servidor de la base de datos.

1410
Visual Basic 6.0 e inferiores / Re: como conectarme a sql remoto
« en: Martes 17 de Marzo de 2009, 16:34 »
Cita de: "falu86881"
haora el sp3 me lo pide el sql 2000 no el sistema operativo.... server 2003
Perdona mi enésimo despiste. Ya me cuentas qué tal.

1411
VBA / Re: Referenciar TextBox creado Dinamicamente
« en: Martes 17 de Marzo de 2009, 16:19 »
Cita de: "BioK"
(si decias por la "e" estaba probando nomas llamarlo de otra forma distinta a la definición Dim txtFreq As TextBox pero tampoco anda )
Aha, lo más lógico del mundo: si lo llamas de otra forma seguro que te hace caso  :wacko: Y también que yo adivine que tú lo has hecho aposta. Tiene huevos la cosa.

Código: Visual Basic
  1. Option Explicit
  2.  
  3. Dim WithEvents Texto As VB.TextBox
  4.  
  5. Private Sub Form_Load()
  6.     Set Texto = Controls.Add("VB.TextBox", "Texto", Form1)
  7.     Texto.Visible = True
  8. End Sub
  9.  

1412
Visual Basic 6.0 e inferiores / Re: Pad de firma en visual 6.0
« en: Martes 17 de Marzo de 2009, 16:03 »
(BORRAR)

1413
Dudas informáticas / Re: software para intros
« en: Martes 17 de Marzo de 2009, 13:02 »
Con un software de edición de sonido. Mi favorito es Sony Acid Pro por su facilidad de uso, aunque también tienes Audacity (software libre), Cubase, Pro Tools (sólo funciona con hardware dedicado), Audition (ex-Cool Edit), etc...

Que disfrutes y cualquier duda con el Acid ya sabes dónde encontrarme  :hola:

1414
Dudas informáticas / Re: permisos de archivos
« en: Martes 17 de Marzo de 2009, 12:56 »
¿Por qué no quitas simplemente el JS y dejas que lo haga todo el PHP?

Salud

1415
Dudas informáticas / Re: Por Favor , Me colaboran...
« en: Martes 17 de Marzo de 2009, 10:08 »
Primero, creo que un cambio de gerente vendría muy bien, y si no es posible, por lo menos que sea otro el que indique los criterios de contratación. Los trajes no están hechos para las tecnologías de las información, básicamente porque se hacen los entendidos porque sabes 2 conceptos pero no tienen ni idea.

En cuanto a lo que decía sobre PHP, yo que tú haría una prueba de ses software sobre un servidor Windows y vería qué tal. Tampoco me has especificado qué servidor web usas, así que supondré que es Apache, lo cual sería afortunado porque hay una versión para Windows también. Si es muy complicado/costoso, entonces creo que la primera solución es desde luego la más viable.

Y como consejo personal te digo que mantengas Linux porque, aparte de que el rendimiento de los servicios no va a mejorar (es más, puede que empeore), el dolor de cabeza va a ser considerable, te lo puedo asegurar. Aquí tienes más información.

Siguiendo con mi opinión, aquí puedes hacerte una idea de que Linux es mejor (y más para equipos potentes, de precisión y fiabilidad):

http://news.softpedia.com/news/Market-S ... 9071.shtml
http://www.infoworld.com/article/09/02/ ... ver_1.html
http://www.infoworld.com/article/08/06/ ... ource=fssr
http://www.rinconsolidario.org/linux/wi ... n-Lin.html
http://www.redcientifica.com/doc/doc199905100008.html
http://www.michaelhorowitz.com/Linux.vs.Windows.html
http://weblog.topopardo.com/?p=1279
http://linuxadictos.com/2008/08/14/linu ... s-round-1/  :D
http://www.abadiadigital.com/noticia1778.html
http://www.devx.com/opensource/Article/16969

Espero te ayude a aclararte. Salud.

1416
Java / Re: Nuevita en java
« en: Martes 17 de Marzo de 2009, 09:48 »
¡Bienvenid@ al foro!

Creo que tu problema radica en que no referencias Form2 al llamar a sus métodos. Esto es, piensa en Form1 y Form2 como 2 objetos independientes, así que para llamar a un método de Form2 desde Form1 debes indicar Form2.nombre_metodo();. Esto siempre y cuando hayas declarado el método en cuestión como público/protegido (que tenga suficiente visibilidad para poder llamarlo desde Form1, vamos). Si no tienes claro esto último, te aconsejo que lo repases, pues es fundamental en programación orientada a objetos.

Cita de: "Luna_Rules"
no quiero que me resuelvan ningun ejercicio ni nada, solo quiero que me orienten donde esta el problema, si necesitan el codigo para ver lo que tengo se los dejo, pero como decia, no necesito hacer un ejercicio simplemente me gustaria saber la causa del problema y en lo posible alguna explicacion para poder resolverla...
Esto está más que claro en tu explicación.

Salud

1417
Bases de Datos / Re: agenda
« en: Martes 17 de Marzo de 2009, 09:40 »
Primero debes aprender a manejar ficheros: GIYF.

Después, debes definir cómo va a ser la estructura del fichero y las estructuras de datos que vas a usar.

Cuando tengas claro esto, sólo te quedará codificarlo  :comp:

1418
VBA / Re: Referenciar TextBox creado Dinamicamente
« en: Martes 17 de Marzo de 2009, 09:36 »
:ph34r:  :ph34r:  :ph34r:

Vuelve a mirar bien el código que tienes. Míralo fijamente... ¿De verdad no lo ves, o estás de broma?  :alien:

1420
Visual Basic 6.0 e inferiores / Re: como conectarme a sql remoto
« en: Martes 17 de Marzo de 2009, 09:29 »
Utiliza las etiquetas de código para el código, por favor.

Personalmente creo que te equivocas en el campo "Data Source". Ahí no va la IP, por lo menos que yo sepa, sino el origen de datos ODBC: Panel de Control -> Herramientas Administrativas -> Orígenes de datos (ODBC). Ahí ya agregas el que corresponda, en tu caso "SQL Server", y le das un nombre. Luego usa ese nombre como valor para la propiedad "Data Source" de la conexión.

PD: ¿no será el SP3 de Windows XP? Es un poco absurdo que te pida instalar el SP3 del SQL Server 2000 cuando tú tienes la versión 2003  :huh:

Salud

1421
C/C++ / Re: recomendacionea para matar este proceso??
« en: Martes 17 de Marzo de 2009, 09:23 »
Cita de: "su -"
al menos en Unix, nunca tendras un PID igual a 0, y menos si un usuario lo ejecuta...
Tienes razón, pero no. Desde luego en POSIX no hay PID = 0 da igual si lo ejecuta el usuario o no. Pero este no es un PID real. Es el valor que devuelve fork() para el proceso hijo, de ahí hijo_main(). Con getpid() obtendrías el PID. Como veo que no estás familiarizado con fork(), haz un man 2 fork.

Salud

1422
C/C++ / Re: recomendacionea para matar este proceso??
« en: Lunes 16 de Marzo de 2009, 17:10 »
waitpid() tiene varias formas de funcionar, pero la que te interesa a ti es simple:

Código: C
  1. waitpid(pid_hijos,NULL,0);
  2.  
Por ejemplo, en tu caso, yo haría (ten en cuenta que no he probado esto):

Código: C
  1. //Para guardar los PIDs de los hijos
  2. pid_t hijos[3];
  3.  
  4. //Vamos a crear los 3 hijos
  5. for(i=0;i<3,i++){
  6.    //Fork
  7.    pid = fork();
  8.    //Si es un hijo, pues que haga lo que tenga que hacer
  9.    if (pid == 0)
  10.       hijos_main();
  11.    //Si es el padre, guarda el PID del hijo en el vector
  12.    else
  13.       hijos[i] = pid;
  14. }
  15.  
  16. //Esperamos a que termine cada uno de los hijos.
  17. for(i=0;i<3;i++)
  18.    waitpid(hijos[i],NULL,0);
  19.    //También vale esta, esperar a que termine cualquier hijo (esperamos a 3 hijos, en cualquier orden).
  20.    //waitpid(-1,NULL,0);
  21.  
  22.  
Y para el segundo hijo y su propio hijo, pues de forma muy parecida a cómo lo hace el padre.

Salud

1423
C/C++ / Re: recomendacionea para matar este proceso??
« en: Lunes 16 de Marzo de 2009, 16:37 »
Cita de: "pacorubio77"
el problema es que solo puedo utilizar fork , y para matar pues exit,wait,waitpid y todo eso...
Yo en ningún momento en dicho que no uses fork(). No sé a qué viene tu afirmación. Lo que debes hacer es esperar con waitpid() (estas llamadas no matan, sino ponen en bloqueo a los procesos hasta que otros cambien de estado) a los 3 procesos hijos, y que el segundo espere a su hijo y punto, no tiene más complicación. No necesitas compartir las variables porque eso lo hace más complicado todavía. Sólo el segundo hijo necesita saber del nieto, al padre no le hace falta.

Cita de: "pacorubio77"
Sobre lo de ponerlo bonito es lo último, primero tengo que ver los efectos de dicho programa y que salga lo que quiero,,porque por ahora me estoy haciendo un poco lio al no ser todo secuencial.....
No se trata de ponerlo "bonito", como tú dices, sino entendible, que son dos cosas diferentes. Tú mismo.

Yo creo que ya tienes suficiente información para dejar la teoría y empezar a hacer cambios en el código. Te repito: piensa en los procesos como independientes y que cada uno acceda a lo que tiene que acceder, nada más y nada menos, y evita compartir y acceder a información que no necesita el proceso. Es decir, evita cualquier complicación innecesaria.

Salud

1424
C/C++ / Re: recomendacionea para matar este proceso??
« en: Lunes 16 de Marzo de 2009, 16:09 »
Ah OK. Pero si te fijas no sale en negrita  :P

Creo que es porque cuando llega el proceso principal a ese punto, es posible que aún no se haya inicializado v[0] por los otros procesos. Si te fijas, los otros procesos hijos tardan más que el padre porque tienen un sleep(15) mientras que el padre lo tiene a 10. Prueba a inicializarlo con -1 antes de hacer ningún fork() y comprueba el valor que ponga. Pero no te fíes con que reduciendo el sleep() vaya a funcionar. Es mejor sincronizar.

Hay que tener cuidado con la programación concurrente porque no sabes en que orden se van a ejecutar los procesos, y da lugar a este tipo de problemas. Deberías usar más sincronizaciones entre los procesos (con semáforos, por ejemplo).

También para evitar estos líos te aconsejo una vez más que llames a una función aparte para el código de los hijos, pero sobre todo que plantees bien el asunto intentando tener en cuenta todos los órdenes de ejecución posibles. Es complicado, pero ahí radica la "belleza" de la concurrencia.

Salud

1425
Bases de Datos / Re: [SOLUCIONADO] Problema al conectar con Oracle
« en: Lunes 16 de Marzo de 2009, 16:06 »
Era un problema de permisos.

 :comp:

Páginas: 1 ... 55 56 [57] 58 59 ... 100