PDA

Ver versión completa : Unidades de red


absolut
26-08-2004, 15:21
Bueno pus el sistema q desarrolle esta en visual basic con base de datos de access no es la gran cosa pero el chiste es q para conectarse es forzozamente por unidad de red y la base de datos esta en la mejor maquina de la emrpesa una P4, 512 RAM, 40 gb) ahora viene el pedo hay 4 maquinas q se deben conectar

la q tiene la base de datos se conecta de manera local sin broncas nunca falla

una con WINXP PRO esta no tiene broncas la reincias y se vuelve a conectar a la unidad cada q inicia

otra con WIN XP HOME esta aveces se pone loca pero pus si entra mas facil,

pero hay una laptop con WIN XP HOME con tarjeta wireless q le creo la unidad de red y bien pero cuando la apaga o reinicia se desconecta y nada de nada q se vuelva a conectar a la unidad de red y es una mega bronca por q es la del "jefe" y ya ven como se ponen de intensos cuando algo falla

tambien otra bronca es q varias veces me dice q lamaquina "servidor" ya no acepta mas conexiones entrantes esto comos e resuelve y tambien lo de la lap

de antemano gracias

EXITO!

cuncun
26-08-2004, 15:33
Pues, lo de la laptop quiza sean politicas de seguridad en red, recuerda que el XP home es malisimo para las redes wireless, se supone que ese salio sin soporte para ellas (es una de sus desvetajas, tambien esta la de no soportar SMP) asi que nunca me ha pasado, pero supongo que por ahi esta el p2.

Ahora lo de las conexiones, seria bueno saber que sistema operativo usas en el "servidor" asi como tambien que motor estas usando para dar "servicio" a la base de datos, eso por ejemplo ocurre con os que no son pa server, un sistema operativo que no es para server, no puede mantener mas de 3 conexiones por el mismo socket y puerto antes de que mande uno a volar (o a todos http://www.darkclockers.com/foros/images/smilies/triste.gif), asi que se me hace que por ahi anda el p2 tambien, o quiza el motor para tu BD del server no esta bien configurado y le tienes que habilitar que puedan enlazarse mas de 4 a la ves para el mismo servicio/socket/puerto..

espero haberte ayudado ;)

absolut
26-08-2004, 15:36
a pus el server es win xp home ...........no aflojan lana pa comrpar uns erver descente ..........son codos pero eso si quieren q todo jale y de perlas

EXITO!

absolut
26-08-2004, 15:38
ahhh y pus el motor de la base es el jet4 de windows :s

EXITO!

Mr_Mosh
26-08-2004, 15:59
Absolut vale mas crea un .ini y que lo lea el sistema y en ese .ini tu pones la direccion de red directa para conectarte a la base de datos, algo asi como \\servidor\sistema\BD\BD.mdb y te quitas de broncas.

Incluso si no te quieres complicar con .ini pues creas una .mdb local en cada maquina y ahi guardas la cadena de conexion y asi si cambias la direccion del server pues no mas cambias la linea de conexion guardada.

Saludos

absolut
26-08-2004, 16:03
se me hace mas facil el .ini por q la direcciond e la base de datos esta encriptada en un txt y para cambiarla pus hay q borrar el txt y volver a crear la conexion y visual te encripta la direccion como forma de seguridad asegun no? ja

pero lo del .ini esta mas dificil por q tendria q modificar todo el codigo de conexion a la base de datos es en friega pero pus voy a ver si me aiento por q si me costo un webo ja!

EXITO!

Mr_Mosh
26-08-2004, 16:05
No es tan dificil, si quieres ayuda contactame por el MSN y te ayudo con lo de la cadena de conexion por medio del .INI

Saludos

absolut
26-08-2004, 16:09
ahhh si la cadena si me la se lo q digo es q checa corres el programa

y ahi busca el txt si lo encuntra lo desencripta y busca la unidad de red y ya lee la base de datos

si no encuentra el txt entonces te pregunta dodne esta la base de datos y ya le indicas donde ahi es donde entra la unidad de red le dices donde encripta la direccion en el txt y listo

y si existe el txt y no es la direccion correcta de la base de datos o no esta conectada la unidad de red ahi truena y no entra al sistema

Y si lo mas sencillo es crear el .ini o de plano ponerle en el codigo la direccion q nunca va a ser mmovida dle server y q entre automatico eso lo he hecho mil veces pero esta vez me quize dar mi taco y salio peor jajajaja

deja te veo en la noche por el messenger y te mando todo el sistema pa q o veas

EXITO!

Mr_Mosh
26-08-2004, 16:17
Mira estas son las dos funciones para leer y escribir en un archivo .INI para esto tienes que apoyarte de las siguientes API

API:
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long


'regresamos el valor de la clave del archivo ini
Public Function Regresa_Valor(Seccion As String, Key As String, Default As String) As String
Dim Cadena As String
Dim Lon As Integer

Cadena = String(255, 0)

Lon = GetPrivateProfileString(Seccion, Key, Default, Cadena, 255, App.path & "\Configuracion.Ini")
'If Lon <> 0 Then Cadena = Left$(Cadena, Lon)
Cadena = Left$(Cadena, Lon)
Regresa_Valor = Cadena

End Function


'Grabamos datos en el fichero .ini
Public Sub Graba_Valor(Seccion As String, Key As String, Valor As String)
WritePrivateProfileString Seccion, Key, Valor, App.path & "\Configuracion.Ini"
End Sub

Ahora como yo manejo la conexion es asi:

Public Sub Abrir_Conexion()
On Error GoTo Error

path = Regresa_Valor("AUTOTIME", "Path", "")
dbAutotime.Open CONEXION & path & "\BD\Autotime.mdb" & USUARIO

Error:
Maneja_Error Err
If Err.Number <> 0 Then
CopyFile.Show
Status = 0
ElseIf Err.Number = 0 And Status = 1 Then
MsgBox "Base de Datos conectada al sistema de tiempos Autotime", vbInformation
End If
End Sub

Donde conexion es igual a:

'para la cadena de conexion a la base de datos
Public Const CONEXION = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
'para la cadena de conexion que contiene el usuario y el password
Public Const USUARIO = ";Jet OLEDB:Database Password=administrativo" ''";User Id=;Password=;"


Lo de Usuario es por si utilizas password en la MDB o tienes grupos de trabajo preestablecidos.

Creo que con esto la haces cualquier duda a tus ordenes Absolut