lo hago a través de un archivo .ini
donde tengo el nombre del servidor,login, passwd, el nombre de la base de datos y el nombre del odbc que utilizo.
cuando inicio el programa voy a leer ese archivo
y luego me conecto de esta manera:
Código:
Public Function AbrirConexion(ByRef NomConexion As Object, NombredelODBC 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)
NomdelODBC = Trim(NomdelODBC)
If NomDSN <> Empty Then
'CONECTAMOS
Origen = "DSN=" & NombredelODBC & ";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
luego llamo a esta función:
abrirconexion (Parametros, "NombredelODBC ","NombreBase", NomUsu, clave, NomMaq)