Tengo un programa que se conecta de la sigiente manera:
Código:
Public Function AbrirConexion(ByRef NomConexion As Object, NomDSN As String, NomBD As String, NUsuario As String, NClave As String, Optional NHost As String)
Dim connectOut As String * 256
Dim connectOutLen As Integer
Dim rc As Long
Dim Origen As String
Dim Aux_hEnv As Long, Aux_hDbc As Long, Aux_hStmt As Long, Aux_Stmt2 As Long
On Error GoTo Terminar
Prop_HuboError = False
NomBD = Trim(NomBD)
NomDSN = Trim(NomDSN)
If NomDSN <> Empty Then
'CONECTAMOS
Origen = "DSN=" & NomDSN & ";DATABASE=" & NomBD & ";UID=" & NUsuario & ";PWD=" & NClave & ";HostName=" & NHost & ";"
'MsgBox "ApiOdbc:" & Origen
connectOutLen = 0
connectOut = String(256, 0)
rc = SQLAllocEnv(Aux_hEnv)
NomConexion.hEnv = Aux_hEnv
If Not (rc = SQL_SUCCESS Or rc = SQL_SUCCESS_WITH_INFO) Then
DescribeError NomConexion, rc
AbrirConexion = False
Exit Function
End If
rc = SQLAllocConnect(ByVal Aux_hEnv, Aux_hDbc)
NomConexion.hdbc = Aux_hDbc
If Not (rc = SQL_SUCCESS Or rc = SQL_SUCCESS_WITH_INFO) Then
DescribeError NomConexion, rc
AbrirConexion = False
Exit Function
End If
rc = SQLDriverConnect(Aux_hDbc, 0, Origen, Len(Origen), connectOut, 255, connectOutLen, SQL_DRIVER_COMPLETE)
NomConexion.hdbc = Aux_hDbc
If Not (rc = SQL_SUCCESS Or rc = SQL_SUCCESS_WITH_INFO) Then
DescribeError NomConexion, rc
AbrirConexion = False
Exit Function
End If
rc = SQLAllocStmt(ByVal Aux_hDbc, Aux_hStmt)
NomConexion.hstmt = Aux_hStmt
If Not (rc = SQL_SUCCESS Or rc = SQL_SUCCESS_WITH_INFO) Then
DescribeError NomConexion, rc
AbrirConexion = False
Exit Function
End If
AbrirConexion = True
End If
Exit Function
Terminar:
AbrirConexion = False
Prop_HuboError = True
End Function
Resulta que cuando hago alguna consulta o insert demora mucho, ahora el programa está a prueba y la base de datos tiene pocos datos, pero se prevee un crecimiento bastante grande para la misma y no se cómo mejorar el tiempo de respuesta.
quizá se pueda manejar a través de store procedures, pero busqué como es el manejo y no tuve suerte.
¿Hay alguna forma de conexión más rápida?
Saludos. Fdnds