Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: marisol_ylonen en Sábado 14 de Julio de 2007, 01:31
Título: Conexión Ado A Base De Datos En Servidor
Publicado por: marisol_ylonen en Sábado 14 de Julio de 2007, 01:31
Hola! Cómo están? Pues yo otra vez dando lata. Resulta que cometí un error que me ha costado una gran pérdida de tiempo. En mi proyecto, debo conectarme a un servidor as400, tiene varias bibliotecas pero a mí me interesa la que se llama RHDBD_16 -es el mismo nombre para la base de datos-, de ahí uso las tablas LGBS, TEILS y STRUS, la dirección del servidor es xx.xx.xx.xxx. Mi erro fue conectarme por ODBC, era muy lento pero yo podía soportarlo: mis jefes, no. Así que cree una tabla con una consulta de creación de tabla en access y metí mucho código en el editor de vb. Ya tengo todos los cálculos hechos de este modo, pero ahora debo conectarme al servidor y jalar sólo la base de datos RHDB_16. He leído que por ADO es mucho más rápido. Busqué unas cosillas y ya establecí la conexión al servidor, pero al meterle una consulta no hace nada. No sé si alguien pueda darme un ejemplo o algo y explicarme porque como que no doy una con ADO. Este es el código de la conexión:
Public cn400 As New ADODB.Connection Public cm_APILIB_PARTS As New ADODB.Command Public cm_APILIB_SPROC2 As New ADODB.Command Public rs_APILIB_PARTSDATA As ADODB.Recordset Public rs_APILIB_SPROC2 As ADODB.Recordset Option Compare Database ______________________________________ Private Sub Comando0_Click() Dim strPARTNO As String cn400.Open "Provider=IBMDA400;Data Source=192.168.11.10;", "", "" Set cm_APILIB_PARTS.ActiveConnection = cn400 strPARTNO = Texto3 cm_APILIB_PARTS.CommandText = "select STBGNR, STKOMP FROM RHDBD_16.STRUS WHERE STKOMP LIKE '*" & strPARTNO & "*'" cm_APILIB_PARTS.CommandType = adCmdText Set rs_APILIB_PARTSDATA = cm_APILIB_PARTS.Execute Lista1.AddItem (rs_APILIB_PARTSDATA.Fields(1).Value)
End Sub _____________________________________ Private Sub Class_Terminate() Set rs_APILIB_PARTS = Nothing Set rs_APILIB_SPROC2 = Nothing Set cm_APILIB_SPROC2 = Nothing Set cm_APILIB_PARTS = Nothing If Not cn400 Is Nothing Then cn400.Close End Sub
Ojalá me puedan ayudar, no debe ser precisamente sobre as400, pero si se puede se agradece aún más; y miren que ya les estoy muy agradecida. :hola: Saludos desde Querétaro, México y que tengan un extraordinariamente buen fin de semana. :kicking:
Título: Re: Conexión Ado A Base De Datos En Servidor
Publicado por: marisol_ylonen en Sábado 14 de Julio de 2007, 01:38
ah!!! Y por si alguien está en las mismas, hay un libro completísimo acerca de ado y oledb en el as400; es de IBM -de los redBooks- y se llama "a fast path to as400..." por si quieren buscarlo en google. redbooks.ibm.com/redbooks/pdfs/sg245183.pdf :comp: Y por qué no lo,leo? Ya lo empecé, me quedé en la página 67 pero es de 400 y tantas hojas y no tengo tanto tiempo, debo acabar cuanto antes. Pero si hay alguien que aún tenga el tiempo suficiente y sepa inglés -porque está en inglés- seguro que le servirá. Gracias por todo :hola:
Título: Re: Conexión Ado A Base De Datos En Servidor
Publicado por: F_Tanori en Sábado 14 de Julio de 2007, 12:20
Hola
Haz probado alguna otra consulta diferente a ver si devuelve resultados?
o Haz realizado alguna prueba para saber si estas conectad@? por ejemplo
Código: Text
if cm_APILIB_PARTS.state=1 then 'conectado
Se ha habido algun error al ejecutar la consulta?
Puede ser el uso de los comodines para el operador Like algunas bases de datos utilizan (%) en lugar de (*) y (?) en lugar de ( _ ) y esto afecta el funcionamiento del operador Like (no conozco AS400 pero se me ocurre eso :ph34r: )
si hay datos que cumplan con la condicion (WHERE)? :rolleyes:
Saludos
Título: Re: Conexión Ado A Base De Datos En Servidor
Publicado por: marisol_ylonen en Jueves 19 de Julio de 2007, 00:42
Hola! Pues, se supone que sí. La idea es que se presenten varios campos de los registros que cumplan unas ciertas condiciones, no sólo uno. Esta es una prueba pero no me sale. Lo que pretendía era: se escribe un número de parte en la caja de texto y busca en las tablas el registro de ese número. Me he encontrado ejemplos de conexión y ya los calé todos pero no logro llamar los datos porque no tengo grid en Acces y a listbox no los envia. Creo que está mal la sintaxis, pero es que al escribir Lista1. no me da ninguna opción. Si alguien sabe de algún método para jalar los datos del servidor a formularios de Access, que no sea ODBC, se lo agradecería mucho. Muchas gracias de nuevo.