Visual Basic - Sistema visual basic en red

Life is soft - evento anual de software empresarial
 
Vista:

Sistema visual basic en red

Publicado por Mari (1 intervención) el 11/09/2006 16:54:07
Hola a todos,
Realice un programa en visual basic y necesito colocarlo en dos computadoras, como hago para que ese sistema funcione en red ?

De antemano muchas gracias....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sistema visual basic en red

Publicado por ivan (1039 intervenciones) el 11/09/2006 17:00:04
Graba las bases de datos en una carpeta compartida en una PC, de manera que la otra pueda accesar a ella; crea un DSN (en órígenes de datos ODBC) en cada PC al igual que en tu programa para que no tengas que preocuparte donde está tu base da datos.

Haz el SETUP.EXE de tu aplicación para que lo puedas instalar en otras computadoras.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Sistema visual basic en red

Publicado por El Viejo Charles (262 intervenciones) el 11/09/2006 18:50:03
bueno te comento que eso no es asi tan sencillo como te dice el colega anterior, para eso debes tener conocimientos de redes y segundo depende como necesita tu aplicacion compartir informacion, ahora si es de crear DNS, por favor no solo digan, !TIENES QUE CREAR EL DNS!, seria buen que dijeran como, si lo deseas me escribes, nos encontramos en mssenger o no se en yahoo messenger y puedo ayudarte con gusto.
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sistema visual basic en red

Publicado por ivan (1039 intervenciones) el 12/09/2006 01:15:01
Comentando sobre la nota anterior, de que no es tan sencillo, creo que para hacer un proyecto que sea accesado solo por 2 computadoras o usuarios no se requiere de gran cosa para programarlo, y si me faltó poner cómo crear el DNS.

Public Sub Agrega_DSN(ByVal szWantedDSN As String, ByVal Agregar As String)
Dim szDriverName As String
szDriverName = String(255, Chr(32))
Archivo_Agregado = Agregar
If Not checkWantedAccessDSN(szWantedDSN) Then
If szDriverName = "" Then
MsgBox "Can't find access ODBC driver.", vbOK + vbCritical
Else
Preg = createAccessDSN(szDriverName, szWantedDSN)
If Not Preg Then
MsgBox "Can't create database ODBC.", vbOK + vbCritical
Else
Mensaje = "El Sistema de Nombre de Dominio (DSN) " & Chr(34) & szWantedDSN & Chr(34)
Mensaje = Mensaje & Chr(10) & Chr(13)
Mensaje = Mensaje & "ha sido registrado en Orígen de Datos (ODBC) de su PC"
MsgBox Mensaje
End If
End If
Else
Mensaje = "El Sistema de Nombre de Dominio (DSN) " & Chr(34) & szWantedDSN & Chr(34)
Mensaje = Mensaje & Chr(10) & Chr(13)
Mensaje = Mensaje & "ya está registrado en Orígen de Datos (ODBC) de su PC."
Mensaje = Mensaje & Chr(10) & Chr(13)
MsgBox Mensaje
End If
End Sub

Public Function checkWantedAccessDSN(szWantedDSN As String) As Boolean
Dim szKeyPath As String
Dim szKeyName As String
Dim szKeyValue As String
Dim bRes As Boolean
'HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
'HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI
szKeyPath = "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"
szKeyName = szWantedDSN
szKeyValue = String(255, Chr(32))
If isSZKeyExist(szKeyPath, szKeyName, szKeyValue) Then
bRes = True
Else
bRes = False
End If
checkWantedAccessDSN = bRes
End Function

Public Function isSZKeyExist(szKeyPath As String, _
szKeyName As String, _
ByRef szKeyValue As String) As Boolean
Dim bRes As Boolean
Dim lRes As Long
Dim hKey As Long
lRes = RegOpenKeyEx(HKEY_CURRENT_USER, _
szKeyPath, _
0&, _
KEY_QUERY_VALUE, _
hKey)
If lRes <> ERROR_SUCCESS Then
isSZKeyExist = False
Exit Function
End If
lRes = RegQueryValueEx(hKey, _
szKeyName, _
0&, _
REG_SZ, _
ByVal szKeyValue, _
Len(szKeyValue))
RegCloseKey (hKey)
If lRes <> ERROR_SUCCESS Then
isSZKeyExist = False
Exit Function
End If
isSZKeyExist = True
bandera_modulo = 0
If isSZKeyExist Then bandera_modulo = 1
End Function

Esto lo debes poner de preferencia en un módulo, asimismo, algunas de estas declaraciones van al principio

Private Const KEY_QUERY_VALUE = &H1
Private Const ERROR_SUCCESS = 0&
Private Const REG_SZ = 1
'Private Const HKEY_CURRENT_USER = &H80000002
Private Const HKEY_CURRENT_USER = &H80000001
Private Const REG_DWORD = 4
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long
Public bandera_modulo As Byte
Public Archivo_Agregado As String

Private Const ODBC_ADD_SYS_DSN = 4 'Constant for Adding the DSN
Private Const ODBC_REMOVE_SYS_DSN = 6 'Constant for removing the DSN

Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent As Long, ByVal fRequest As Long, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
' otra declaración de variables
Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, _
ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long

Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, _
ByVal dwFlags As Long, ByVal fForce As Long) As Long

Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
lpLocalName As String
lpRemoteName As String
lpComment As String
lpProvider As String
End Type
Public Const RESOURCETYPE_ANY = &H0
Public Const RESOURCETYPE_DISK = &H1
Public Const RESOURCETYPE_PRINT = &H2
Public Const RESOURCETYPE_UNKNOWN = &HFFFF

No se cual si acaso son todas, ya que en el módulo tengo yo otras rutinas, para eso mejor incluyo aquí algunos links que pueden ser de utilidad:

http://www.planetsourcecode.com/vb/scripts/BrowseCategoryOrSearchResults.asp?optSort=Alphabetical&txtCriteria=dsn&blnWorldDropDownUsed=TRUE&txtMaxNumberOfEntriesPerPage=10&blnResetAllVariables=TRUE&lngWId=1

En este sitio vienen varios ejemplos, de aqui he sacado varias cosas que me han servido.

Este ejemplo está orientado a hacer una conexion DSN para una base de datos de ACCESS, ahora para usarlo en el Visual.. (suponiendo que la base de datos se llama ejemplo.mdb y está ubicado en la estación de nombre estacion1 en la carpeta compartida bases, asimismo la base de datos tiene una clave de acceso, la cua es -->> ami).

NomDSN = "Ejem"
NomMDB = "\\estacion1\bases\ejemplo.mdb"
Call Agrega_DSN(NomDSN, NomMDB)

Set Conexion = New ADODB.Connection
Conexion.ConnectionString = "DSN=Ejem;UID=administrador;PWD=ami;"
Conexion.Open

Para compartir archivos y carpetas basta con abrir el explorador o MiPC seleccionar la carpeta que compartiremos, le damos clic derecho y aparacerá la opción COMPARTIR, si acaso esta opción no existe entonces habrá que configurar el equipo para que pueda ser habilitado como red, debiera tener alguna tarjeta de red de cable coaxial, telefónico, o inalámbrico o que se yo, pero eso ya es otro boleto.....

Espero sirva de algo y mucha suerte...!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar