|
51
|
Sistemas Operativos / GNU/Linux / Acceso entorno grafico Linux
|
en: 28 Abril 2010, 12:58 pm
|
Buenas gente, estoy intentando acceder desde putty con windows XP a un servidor Linux mediante Xming habilitando la opción de Enable X11 forwarding, el problema es que al abrir cualquier aplicación de entorno grafico me tira bastante lento, existe alguna manera de agilizar este proceso? En el servidor Linux tengo pocos privilegios porque accedo con un usuario bastante restringido, con lo cual no tengo mucha posibilidad de instalar programas remotos o mi saber no llega a tanto ^^ . ¿ Que podría hacer para realizar una conexión cliente-Servidor que sea no muy lenta para poder trabajar? Un saludo!
|
|
|
53
|
Programación / Programación Visual Basic / Re: Conexion BBDD ADO
|
en: 12 Abril 2010, 07:44 am
|
Te recomiendo realises la conexion ado y crees tus funciones aparte dejando el form limpio de este tipo de cosas... asi lo hago yo en .NET ADO.NET aun que este ado la funcion deberia seria devolverte el RecordSet, despues trabajas sobre este con la conexion cerrada y en otra funcion guardas el RecordSet pasandolo en dicha funcion!¡.
Buenas, a que te refieres con esto? yo me puedo crear una funcion que realice todo esto, pero aque te refieres con la conexion ADO? rs.Open "UPDATE usuarios set USR_password='uiid2daa' where USR_Tipo = 'v'", con, adOpenDynamic, adLockPessimistic
Gracias ssccaann43 no sabia que se podia utilizar SQL para actualizar los campos!
|
|
|
54
|
Programación / Programación Visual Basic / Conexion BBDD ADO
|
en: 9 Abril 2010, 14:48 pm
|
Gente tengo una duda, porque no se porque este codigo me salta un error... alguien podría ayudarme? es que llevo toda la vida realizando consultas y modificando sobre ellas y ahora no puedo hacerlo porque me dice lo siguiente: -2147467259(80004005) Error en la actualizacion basada en consultas: no se encontro la fila para actualizar. codigo: Dim con As New ADODB.Connection Dim rs As New ADODB.Recordset Private Sub Command1_Click() rs.Open "SELECT * from usuarios where USR_Tipo like 'v'", con, adOpenDynamic, adLockPessimistic rs.MoveFirst rs.Update If Not rs.EOF Then While Not rs.EOF rs("USR_password").Value = "uiid2daa" rs.Update rs.MoveNext Wend End If rs.Close con.Close End Sub Private Sub Form_Load() connstr = "Driver={MySQL ODBC 3.51 Driver};" & _ "Server=192.168.1.1;" & _ "Port=3306;" & _ "Database=test;" & _ "User=root;" & _ "Password=pass;" With con .ConnectionString = connstr .Open End With End Sub
Me estoy volviendo loco, alguien podría ayudarme? lo unico que quiero es modificar el campo USR_Password y no lo consigo. Un saludo!
|
|
|
55
|
Programación / Programación Visual Basic / Re: Threads en VB
|
en: 5 Abril 2010, 07:25 am
|
Hola, quisiera saber cual es el probelma principal, o sea el "porque" de que te tarde tanto procesar esos registros ¿podes poner el codigo de esos registros?...porque capas estas haciendo algo mal ahi...y procesar esa cantidad de registros no debe haber problemas...hay procesos que procesan mas registros y no usan thread para nada.
si quieres pongo aqui mi cogido y le hechais un vistazo, lo unico para lo que quiero los threads es por estetica, para que el formulario no se quede en modo "No Responde" al ser una operación tan grande: Function AsignaOperaciones(fileName As String, ByRef matriz As totalExpedientes, PB1 As ProgressBar) As Integer Dim file As Integer Dim linea As String Dim lineaGestion As String Dim vDatos As Variant Dim indice As Long Dim gestion As Double Dim encontrado As Boolean file = FreeFile PB1.Min = 0 PB1.Max = 149000 Open fileName For Input As #file Do Until EOF(file) Line Input #file, linea vDatos = Split(linea, "*") gestion = 0 indice = BuscaExpediente(Val(vDatos(0)), matriz, encontrado) lineaGestion = vDatos(2) If encontrado Then If matriz.expedientes(indice).gestion <> "" Then gestion = matriz.expedientes(indice).gestion Else gestion = 0 End If matriz.expedientes(indice).TipoOperacion = vDatos(1) matriz.expedientes(indice).gestion = gestion + CalculaSaldos(lineaGestion) matriz.expedientes(indice).Asignacion = vDatos(3) matriz.expedientes(indice).Defectuosa = vDatos(4) matriz.expedientes(indice).Subsanada = vDatos(5) matriz.expedientes(indice).Anulada = vDatos(6) End If If PB1.Max <> PB1.Value Then PB1.Value = PB1.Value + 1 End If Loop Close #file PB1.Value = 0 End Function
esto es una función, y la función BuscaExpediente es la siguiente: Function BuscaExpediente(numExp As String, matriz As totalExpedientes, ByRef bandera As Boolean) As Long bandera = False For i = 0 To matriz.numExpedientes - 1 Step 1 If numExp = matriz.expedientes(i).Expediente Then bandera = True BuscaExpediente = i Exit Function End If Next BuscaExpediente = -1 End Function
la estructura totalExpedientes es la siguiente Type EstructuraExpediente Expediente As String FechaFirma As String Procedencia As String FechaFactura As String Debe As String Haber As String Saldo As String TipoOperacion As String gestion As String Defectuosa As String Subsanada As String Asignacion As String Anulada As String End Type Type totalExpedientes expedientes() As EstructuraExpediente numExpedientes As Long End Type
En resumen, mi funcion buscaExpedientes realiza un bucle bastante grande, y la funcion de AsignaOperaciones abre un archivo que contiene 150000 lineas con lo cual tiene que recorrer 150000 lineas y buscar en la matriz el correspondiente expediente para asignarle valores de la linea(cada linea corresponde a un expediente). Espero haberme explicado..  Un saludo y Gracias!
|
|
|
56
|
Programación / Programación Visual Basic / Re: Threads en VB
|
en: 31 Marzo 2010, 09:18 am
|
Aprende C++ o java
si realmente se programar en C/c++ o java, sólo que hice la aplicación en VB porque estaba orientada a BBDD de lotus y el codigo de VB es similar al de LOTUS,la proxima vez empezare el proyecto en C/C++ y todo perfecto, por cierto...odio java.  . Simplemente lo quiero por estética, pero si no se puede tampoco lo realizo, lo unico que quiero es que haga en 2º plano un bucle que es bastante grande, donde tiene una funcion de busqueda que tiene tambien un bucle bastante grande, entonces digamos que si quiero hacer esto: sub funcion1(indice as string,max as long,BBDD as EstructuraDatos,PB1 as progressbar) PB1.value=0 for i=1 to max 'max = 150000 busca(indice,BBDD) '-> esta funcion tiene un bucle for de 1 hasta 145000 tambien. PB1.value=PB1.value +1 next End sub
pos lo unico que quiero es realizar la funcion1 en 2º plano, ya que el formulario se queda "Colgado" al ser una operación que lleva tanto tiempo, para que estéticamente la progressbar se vaya incrementando y el formulario no tenga el aspecto de "colgado" (No Responde)que se produce cuando un programa realiza un algoritmo muy grande, porque se queda con la ventana del form en blanco... hasta que realiza el algoritmo por completo. Si existe solución me gustaría saberla, hasta ahora he utilizado la API de createThread y no parece funcionar muy bien en VB, o realmente no la he implementado bien, alguien podría ayudarme?
|
|
|
57
|
Programación / Programación Visual Basic / Re: Threads en VB
|
en: 30 Marzo 2010, 09:29 am
|
es verdad tienes razon, al compilar.... si ejecuto el EXE me tira un error..... y no sigue ejecutando... te pongo el codigo Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Public hThread As Long, hThreadID As Long Private Sub Command1_Click() hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf AsyncThread, ByVal 0&, ByVal 0&, hThreadID) CloseHandle hThread End Sub Private Sub Form_Unload(Cancel As Integer) If hThread <> 0 Then TerminateThread hThread, 0 End Sub 'in a module Public Sub AsyncThread() For i = 1 To 5 MsgBox i Next hThread = 0 End Sub
|
|
|
58
|
Programación / Programación Visual Basic / Re: Threads en VB
|
en: 30 Marzo 2010, 08:20 am
|
encontre este codigo, bueno... antes de ver el post, lo unico que no funciona me salta el siguiente error Uso invalido de Address of !! Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Public hThread As Long, hThreadID As Long Private Sub Command1_Click() 'KPD-Team 1999 'URL: http://www.allapi.net/ 'E-Mail: KPDTeam@Allapi.net 'After you click this button, try to move the window 'You will see that the AsyncThread-function was executed asynchronously hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf AsyncThread, ByVal 0&, ByVal 0&, hThreadID) ' en esta linea me da el error en Address OF CloseHandle hThread End Sub Private Sub Form1_Unload(Cancel As Integer) 'If the thread is still running, close it If hThread <> 0 Then TerminateThread hThread, 0 End Sub 'In a module Function AsyncThread() As Integer 'Let this thread sleep for 10 seconds Sleep 10000 hThread = 0 End Function
Que ocurre? Un saludo
|
|
|
59
|
Programación / Programación Visual Basic / Threads en VB
|
en: 29 Marzo 2010, 14:40 pm
|
Buenas, estoy haciendo una pequeña aplicacion en VB pero se queda aparentemente colgada debido a que el bucle es demasiado lento, porque recorre unos 150000 registros, intento llevar un co0ntrol mediante una progress bar, y parece funcionar mas o menos bien pero la ventana del formulario se queda un poco colgada, existe alguna manera de ejecutar esta accion sin que afecte al formulario principal? es mediante Threads? Un saludo
|
|
|
60
|
Programación / Bases de Datos / Re: Accesso Integro a BBDD LOTUS
|
en: 19 Marzo 2010, 13:43 pm
|
No se porque que es lo que realiza realmente LOTUS al acceder, tengo entendido que lo guarda en un .ini, pero de donde recoge los valores? porque luego la api t ira del archivo: domobj.tlb localizado en la carpeta de lotus, pero de donde recoge el dato del usuario para inicializar la sesion?
prograbdo con LOTUS existe la manera de sustituir el notes.ini y puedes elegir un usuario u otro, pero con la API aunque elimines el .ini sigue funcionando cogiendo el valor del ultimo server al que se accedio. alguien sabe donde se guarda los valores de los que recoge esta api en el objeto NotesSession? Un saludo
|
|
|
|
|
|
|