Visual Basic.NET - ¿Consulta base de datos sin abrirla? No entiendo

 
Vista:

¿Consulta base de datos sin abrirla? No entiendo

Publicado por Ricardo (1 intervención) el 05/03/2019 16:33:18
Hola a todos:
Estoy aprendiendo como se programa en VB, lo ultimo que programé lo hice en Clipper y me estoy actualizando.

Ahora bien, estoy tratando de descifrar un programa que, resumido, hace lo siguiente:
- Desde VB de excel, abre una base de datos de firebird
- obtiene datos de algunas tablas
- Vacía los resultados en una hoja de excel.


Ya descifre parte del proceso, pero hay algo que no entiendo, ¿podrían ayudarme?

Entiendo que con estas lineas define las variables que contendrán las conexiones, el recordset y "strQry" recibe el resultado de las consultas hechas la base de datos, o algo asi :-D

Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strQry As String


Aqui viene lo raro. Abajo de donde se declaran las variables están estas lineas

strQry = strConsultaEnlace(Tienda, CDate(Fecha), FormaPago)

cnn.Open "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=SERVIDOR:D:/DAC/Datos/basededatos.FDB"

rst.Open strQry, cnn


Según yo la primer linea manda a la funcion "strConsultaEnlace", llevando los valores de 3 variables, en esa función el programa hace la consulta de la base de datos y carga el resultado en "srtQry"

La segunda linea usa la variable "cnn" para hacer la conexion con la base de datos....creo.

La tercera linea, usa la variable "str" como objeto para la conexion a la base de datos....creo.

Mi primer duda ¿Como puede el programa mandar a consultar la base de datos sin haber abierto la base de datos.? por que primero esta la linea que lleva a la función para consultar y luego está la linea para abrir la base de datos.....o sea, ¿como esa eso? no lo entiendo.

¿Me pueden ayudar? 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
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Consulta base de datos sin abrirla? No entiendo

Publicado por Phil Rob (1554 intervenciones) el 05/03/2019 17:36:43
Hola,

Abrir el conexion es tambien abrir el base de datos.
Claro que la función strConsultaEnlace(...) cree la resquesta (SELECT ...) y lo almacea en strQry.

Entonces, rst.Open strQry, cnn ejecuta strQry en la conexion cnn y da los registros para el RecordSet rst.

¿Es necesario uso VBA Excell en lugar de VB.Net? En VB.Net, no usamos RecordSet, usamos DataTable y DataSet ...

Saludos
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
Imágen de perfil de Leonardo Daniel A.
Val: 62
Ha disminuido su posición en 3 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Consulta base de datos sin abrirla? No entiendo

Publicado por Leonardo Daniel A. (36 intervenciones) el 05/03/2019 17:55:31
Hola... olvidate de el manejo de datos en Clipper, FoxPro, DBase, etc. ahi se usaba Use miTabla..... Los lenguajes como VB, C#, Delphi, Java, PowerBuilder, en general todo aquel que no sea xBase ... deben crear una conexion a una base de datos y luego ejecutar el comando.. un SELECT, UPDATE, DELETE, INSERT... incluso procedimientos almacenados......

te recomiendo aprendas tambien SQL hay varios tutoriales muy buenos en youtube.... y te recomiendo tambien pienzes en otro lenguaje.. a menos que pienses quedarte en hacer macros para Excel.... aprende mejor C#, Java, VB.NET, SQL Server
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: 135
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Consulta base de datos sin abrirla? No entiendo

Publicado por Agustin (39 intervenciones) el 07/03/2019 17:53:44
> Estoy aprendiendo como se programa en VB, lo ultimo que programé lo hice en Clipper y me estoy actualizando.

Perdon. La verdad es que no te estás "actualizando", para nada, ya que VB6 se dejó de usar hace por lo menos 10 años.

Te recomiendo que leas este thread: https://www.lawebdelprogramador.com/foros/Visual-Basic.NET/1686595-El-porque-de-las-cosas-Necesito-un-guia-Por-favor.html#i1686700
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