![]() |
Que foro mas soso!!! Es que a nadie le da por el .net o que???? somos muchos los ignorantes y muy pocos los maestros..... :-p Pos bueno, a los que vamos : Me he creado un servicio web para acceder a traves de el con otra aplicacion a una base de datos. Esto, esta claro lo he hecho con un codigo que me encontre en la pagina de microsoft. :borracho: Lo que pasa es que la base de datos no es SQL Server ni access y no se como hacer que se me conecte a una bd de 'Adabas D'. Lo que me falla es el proveedor, creo. Alguien sabe algo???? :neurotico :'( Me urge, plis!!!!!!!! :ojotes: |
Busca en la pagina web de la compañia que hace esa base de datos por los controladores odbc..... y asi podras usarla sin problemas... Saludos.... |
|
gracias! Gracias tios, pero creo q me explique mal : El driver odbc lo tengo, y tambien odbc.net, y lo que me fallaba era la conexion . Pos bien, ya conecté y solo me queda poder usar los datos de la consulta, ya que al intentar ponerlo en en datagrid o asi me falla, pero ya es otro tema que voy a mirar y ya pongo por aqui el código. :arriba: |
aqui esta el codigo !! Ahi os va: error: Excepción no controlada del tipo 'Microsoft.Data.Odbc.OdbcException' en microsoft.data.odbc.dll Información adicional: Error del sistema. codigo: Imports Microsoft.Data.Odbc ... ... Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim strConnectionString As String strConnectionString = "dsn=BD;uid=pppp;pwd=pp;" Dim pConn As New OdbcConnection(strConnectionString) Dim pInsertQuery As String = "SELECT * FROM pais" Dim adapter As New OdbcDataAdapter(pInsertQuery, pConn) Dim paises As DataSet = New DataSet() adapter.Fill(paises, "pais") ' ***aqui me falla*** DataGrid1.SetDataBinding(paises, "pais") DataGrid1.Show() End Sub Me da ese error en el adapter. Parece que conecta bien, y hace la sql, pero me peta al acceder a los datos, no??? :ojotes: |
Deberas revisar la instalación de los drivers ODBC de esa base de datos que estas usando, ya que esta disparo un error y el ODBC.Net no pudo controlar el error. El mensaje de el error es demasiado generico como para saber con exactitud donde esta la falla. En caso remoto se podria determinar con mayor precisión si es que se ejecuto y que no pudo obtener la data, viendo el "stack" completo de las llamadas internas, por que solo has colocado un pedazo del codigo y el titulo del error. El stack es la mejor herramienta para saber por donde esta la falla. |
Es que no lo entiendo!!!!!! Pero si con el VB6 conectaba de p... madre con esta base de datos, y con este ejemplo el access va como un tiro!!!! Que le pasa al puñetero odbc. Ahh, y de que va eso del stack, que soy novato y no menterao todavia. P.D. : el codigo esta todo, no falta nada importante |
Pues como este es un código administrado, algo a de estar mal en el driver de odbc, que le resulta error al odbc de .net El stack es lo mas viejo que existe, es la pila de punteros de los procedimientos que van llamando unos a otros. Supongamos un procedimiento main, llama a showstats, y showstats a setvideo, la pila (stack) se vería así: setvideo(...) showstats(...) main(...) Por default las opciones de debug muestran la pila para saber la ruta y de que punto podria derivarse el error. Intenta cambiando "odbc" por "OleDb", es otra libreria y te debe de funcionar igual. |
Una consulta Como veo que le controlas del .net, me gustaria consultarte algo : Es verdad que el acceso a datos mediante odbc viene capado, osea, que he oido ( de cierto energumeno que espero no tenga razon) que el acceso odbc solo esta probado para motores sql server, oracle y jet . Que yo haya leido , dentro de lo que es ADO, sqlserver y oracle tienen su propio acceso a datos , y luego se puede acceder a las demas con oledb u odbc. Yo intento acceder a un BD adabasD mediante odbc, y me casca, y va el tio y como falla me dice que el acceso mediante odbc ya no se va a usar mas, que tiene que ser oledb. Y porque no puedo rechistar, que es el de arriba mio (usease boss), a si que a ver si me ayudas, que yo aunque le enseño el manual de .net donde lo pone el me dice que no (y eso que no sabe programar en visual basic) :pensando: |
Ya investigue un poco. Según lo que leí la forma original de manejar y conectarse bajo Windows, era usando ODBC. Esta es una interface estandar entre la aplicación y el driver de acceso a la base de datos X, compatibles con los estandares ANSI SQL. Buscando expandir el tipo de archivos o datos que se puedan accesar, como por ejemplo archivos de texto, se creo OLE DB. .Net framework presenta 2 librerias: System.Data.OleDb y System.Data.SqlClient adicionalmente se puede descargar System.Data.OracleClient SqlClient y OracleClient son de acceso especifico, incluyendo las ventajas de cada controlador (driver). OleDb, es utilizando esa expansión, y es una interfase de acceso mas estandar. OleDb te permite el acceso usando un "Provider" X, utilizando una cadena de conección donde especifique el nombre del driver. De ahí ciertas ventajas que provee el OleDb que se prefiere este. El ODBC no es que este bloqueado, es mas que OleDb, es otra metodología de acceso y si un controlador no viene preparado para ambos, no funcionara. ADO (Access Data Objects), es lo mismo que OleDb, muchos drivers ODBC se puede utilizar con OleDb, pero esto depende de la construcción de los mismos. Este es un buen artículo que en la introducción te explica esto: http://msdn.microsoft.com/library/de...asp?frame=true Ademas te introduce a como crear proveedores especificos, así como el "SqlClient". Mas creo que este no seria tu objetivo. Para usar ODBC deberías utilizar, este otro: "ODBC .Net Data Provider", lo podes descargar de: http://msdn.microsoft.com/downloads/...xml&frame=true Parece que tu jefe, le ha atinado per mas por suerte que por base de conocimiento, pero quien sabe talvez encontro algo en internet que lo explica. |
A ver si me centro El caso es : - Ya tenia bajado el odbc .net :arriba: - Siempre conecte mediante ODBC a bases de datos AdabasD, siempre me parecio lo mas sencillo y lo que me dio menos problemas(por no decir ninguno). :-D -Ahora llega el .NET y puedo conectarme, pero no se como acceder a los datos de la sql. :molesto: - Viene el boss y me dice : "eres mu torpe (puede ser...) , la conexion ODBC no es ADO, tienes que hacer ADO. ADO es OLEDB. El ODBC no sirve para las BD que no sean de microsoft u oracle." :cantar: :patada: :golpeado: - El articulo en ingles debe estar bien, gracias por recomendarmelo, pero lo va a leer San Pedro (perdona :-( , pero me lia mas todavia). :neurotico :roto: Yo lo que quiero es saber lo siguiente: - Que diferencias en cuanto a acceso a datos hay entre VB6 y .NET :decabeza: - Porque ODBC ya no es una via tan fiable, si es universal. Es que los de microsoft estan tontos o que!!!!! - Y ultimo, queria decir algo mas, pero ya no me acuerdo, vale!!! PD : jlchavez, muchas gracias por todo. ;-) :arriba: |
Ahhhh ahora ya entendi que te hace falta jeje :arriba: La forma de acceso a datos ya no es en un flujo directo desde la base de datos, hasta el código, si usas el DataAdapter. Le denominan "disconected recordset", por que se ejecuta el DataAdapter que lee todos los resultados de la base de datos y te quedan en una sola colección en memoria, un DataSet. Pongamos un ejemplo: (yo programo en C#, solo sera de reescribirlo en VB) Cita:
La segunda crea un Adaptador que se encarga de ejecutar los queries a la BD. La tercera se crea un DataSet que almacenaro los datos. La cuarta es el Adaptador que se le indica que llene el DataSet con una tabla llamada "Datos", esos datos provienen del query string de la segunda línea. Para accesar los datos: Cita:
Cita:
Cita:
Los resultados los podes accesar de la siguiente forma: Cita:
Para volver estos registros en el tipo correcto, podemos usar lo siguiente: Cita:
Cita:
Cita:
Cita:
|
ok !!! Solo tengo un problema con el oledb : - Como consigo la cadena de conexion para AdabasD????? Necesito el provider , no?? Tengo ejemplos de varios en http://www.connectionstrings.com/ , pero ya no se que ponerle a AdabasD. :'( (Bendito ODBC) Un millon!!! :arriba: ;-) |
Estoy mas tranquilo!!! Encontre esto por internet y ya no me siento tan burro como hace poco : Cita:
|
Ya encontre donde esta el problema: 1 - Quien crea el driver OleDb debe proveer cual es el nombre del provider. 2 - Solo funcionan los providers que provean ciertas interfaces, y solo hay para SQL - SQLOLEDB Oracle - MSDAORA Access - Microsoft.Jet.OLEDB.4.0 Si encuentro algo mas te aviso, estoy rastreando para ver como sabe el sistema cuales son los controladores OleDb que estan instalados, así tal vez encuentre la ubicación estandar y nombres de providers. |
Los drivers ODBC solo se pueden utilizar con el ODBC .NET Data Provider. Cita:
Cita:
|
fffiiiuuuuuu!!!!!!!! :ojotes: ¡¡¡mima que pasote!!! Necesitaré dos dias para asimilar tanta información. tenkiu !!! :arriba: |
Denankiu! :-D |
po ya ta!!! Muchas gracias men!!!! Pero ... Ya me salió!!! :borracho: :-D :risa: Le dije al pringao este que era que la version del driver odbc para adabas no era compatible, que habia que actualizarlo. :pensando: :risa: Pues bien, aunque me lo negaba, accedio a probar y..... :patada: :golpeado: Tachaaaannnn!!!! Como un tiro!!! Se le quedo cara de jili al ver que tenia yo razón. :roto: Por cierto, la version que no rula es la v10, de la v11 para arriba va bien, por si alguien lo necesita. :-D :cool: |
| La zona horaria es GMT -6. Ahora son las 06:41. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.