Autor
|
Tema: Error Simpatico! (Leído 3,443 veces)
|
Cesar_Fdo
Desconectado
Mensajes: 4
|
Estoy Trabajando con "VB .NET 2008", y la aplicación que desarrolle trabaja perfectamente en cualquier PC pero existe una con la que no trabajan los Querys =S.
El problema es cuando el query intenta recoger registros de la BD, suponiendo: "select * from tabla limit 0;" <-- No trairia ningun registro y la aplicacion corre normal. "select * from tabla limit 1;" <-- Aqui si trae un registro y manda el error.
El error en sí no me dice mucho mas que: "Error, intento de leer o escribir en la memoria protegida. a menudo esto indica que hay otra memoria dañada".
Probe la BD y la Conexión y nada indica que este algo mal, ademas, instale desde cero el framework y tampoco nada. Y no creo que este haciendo algo mal puesto que esto lo he hecho exactamente igual que cuando lo instalo en otras PCs.
No se si sirva pero el query me devuelve un datatable a traves de una función, y el resultado lo asigno a una variable para trabajar con ella. "Datos = ExecuteTable(Query)"
Las caracteristicas de la PC donde NO trabaja son: Win XP SP3 FrameWork 3.5 SP1 Intel Pentium D. 2GB RAM 200 DD. (Lo simpatico es que lo he instalado en peores y mejores PCs que esta).
Si a alguien le ha pasado y lo a solucionado le agradeceria infinitamente su respuesta, y si no les ha pasado, igualmente les agradeceria infinitamente si me dieran algunas pistas pq ya he agotado todas las mias.
|
|
|
En línea
|
|
|
|
Hadess_inf
Desesperado
Colaborador
Desconectado
Mensajes: 2.048
Nueva Vida
|
trabajas con MySql?
|
|
|
En línea
|
|
|
|
Cesar_Fdo
Desconectado
Mensajes: 4
|
Si, y para hacer la conexion uso: - MySQL Connector ODBC ( http://dev.mysql.com/downloads/connector/odbc/5.1.html)- MySQLDriverCS ( http://sourceforge.net/projects/mysqldrivercs/)Un ejemplo del codigo que uso: 'Imports Imports System.Data Imports System.Data.Odbc Imports System Imports System.IO
'Definimos los datos de Acceso a la Base da Datos Public Const DBUser As String = "root" Public Const DBPass As String = "N0t4r1A2I" Public Const DBServer As String = "localhost" Public Const DBName As String = "notaria21" Public Const DBDSN As String = "MySQL" Public Const DBPort As String = "3306" Public Const DBDriver As String = "MySQL ODBC 5.1 Driver"
'Var que contiene la cadena de conexión a la base de datos Public CnxStr As String = "DRIVER=" & DBDriver & "; SERVER=" & DBServer & "; DATABASE=" & DBName & "; DSN=" & DBDSN & "; UID=" & DBUser & "; PWD=" & DBPass & "; PORT=" & DBPort & ""
'Esta funcion ejecuta una consulta y regresa un DataTable Public Function ExecuteTable(ByVal Query As String) As DataTable Dim dtDatos As New DataTable Dim OdbcCmd As New OdbcCommand Dim Cnx As New OdbcConnection(CnxStr) Dim daDatos As New OdbcDataAdapter(OdbcCmd)
OdbcCmd.Connection = Cnx OdbcCmd.CommandText = Query
Try daDatos.Fill(dtDatos) Catch ex As OdbcException Throw New ArgumentException(ex.Message) Catch ex As Exception Throw New ArgumentException(ex.Message) End Try
Return dtDatos End Function
'Ahora si, A ejecutar el query Dim Datos As New DataTable Dim Query as String
Query = "Select * From usuarios Limit 1" Datos = ExecuteTable(Query) 'Y manda el Error... pero solo en "esa" PC.
|
|
|
En línea
|
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
A ver,
Puedes describir un poco más tu escenario, es decir, la BD esta en otro equipo? o está local? en cada PC? o qué?
Las otras PC , en las que si corre, cuales son sus caracteristicas?
Una recomendación aparte:
Cuando abras una conexión, stream o lo que sea, siempre ciérrala en el finaly, ej: Try daDatos.Fill(dtDatos) Catch ex As OdbcException Throw New ArgumentException(ex.Message) Catch ex As Exception Throw New ArgumentException(ex.Message) End Try Finaly Cnx.Close() End Finaly
|
|
|
En línea
|
|
|
|
|
|