Programación General > Visual Basic 6.0 e inferiores

 Conexio Con Odbc

<< < (2/2)

Shiquilla:
Para crear DSN:

--Módulo para configurar ODBC (Guardalo en un módulo todo este código)

--- Código: Text ---Option Explicit' ----------------------------------------------------------' ODBC API Declarations' ----------------------------------------------------------' basic ODBC Declares Declare Function SQLAllocEnv Lib &#34;odbc32.dll&#34; (env As Long) As Integer Declare Function SQLFreeEnv Lib &#34;odbc32.dll&#34; (ByVal env As Long) As Integer Declare Function SQLAllocConnect Lib &#34;odbc32.dll&#34; (ByVal env As Long, _hDbc As Long) As Integer Declare Function SQLConnect Lib &#34;odbc32.dll&#34; (ByVal hDbc As Long, _ByVal Server As String, ByVal serverlen As Integer, _ByVal uid As String, ByVal uidlen As Integer, ByVal pwd As String, _ByVal pwdlen As Integer) As Integer Declare Function SQLFreeConnect Lib &#34;odbc32.dll&#34; (ByVal hDbc As Long) _As Integer Declare Function SQLDisconnect Lib &#34;odbc32.dll&#34; (ByVal hDbc As Long) _As Integer Declare Function SQLAllocStmt Lib &#34;odbc32.dll&#34; (ByVal hDbc As Long, _hStmt As Long) As Integer Declare Function SQLFreeStmt Lib &#34;odbc32.dll&#34; (ByVal hStmt As Long, _ByVal EndOption As Integer) As Integer Declare Function SQLExecDirect Lib &#34;odbc32.dll&#34; (ByVal hStmt As Long, _ByVal sqlString As String, ByVal sqlstrlen As Long) As Integer Declare Function SQLNumResultCols Lib &#34;odbc32.dll&#34; (ByVal hStmt As Long, _NumCols As Integer) As Integer Declare Function SQLFetch Lib &#34;odbc32.dll&#34; (ByVal hStmt As Long) As Integer Declare Function SQLGetData Lib &#34;odbc32.dll&#34; (ByVal hStmt As Long, _ByVal Col As Integer, ByVal wConvType As Integer, ByVal lpbBuf As String, _ByVal dwbuflen As Long, lpcbout As Long) As Integer Declare Function sqlError Lib &#34;odbc32.dll&#34; Alias &#34;SQLError&#34; (ByVal env As _Long, ByVal hDbc As Long, ByVal hStmt As Long, ByVal SQLState As _String, NativeError As Long, ByVal Buffer As String, ByVal Buflen As _Integer, OutLen As Integer) As Integer Declare Function SQLSetConnectOption Lib &#34;odbc32.dll&#34; (ByVal hDbc&, _ByVal fOption%, ByVal vParam&) As Integer Declare Function SQLSetStmtOption Lib &#34;odbc32.dll&#34; (ByVal hStmt&, _ByVal fOption%, ByVal vParam&) As Integer   ' misc ConstantsPublic Const sqlChar = 1Public Const sqlMaxMsgLen = 512Public Const sqlFetchNext = 1Public Const sqlFetchFirst = 2Public Const sqlStillExecuting = 2Public Const sqlODBCCursors = 110Public Const sqlConcurrency = 7Public Const sqlCursorType = 6  ' -- ODBC CommandsPublic Const ODBC_ADD_DSN = 1&Public Const ODBC_CONFIG_DSN = 2&Public Const ODBC_REMOVE_DSN = 3&Public Const ODBC_ADD_SYS_DSN = 4&Public Const ODBC_CONFIG_SYS_DSN = 5&Public Const ODBC_REMOVE_SYS_DSN = 6&Public Const ODBC_REMOVE_DEFAULT_DSN = 7&  ' -- ODBC Error CodesPublic Const ODBC_ERROR_GENERAL_ERR = 1Public Const ODBC_ERROR_INVALID_BUFF_LEN = 2Public Const ODBC_ERROR_INVALID_HWND = 3Public Const ODBC_ERROR_INVALID_STR = 4Public Const ODBC_ERROR_INVALID_REQUEST_TYPE = 5Public Const ODBC_ERROR_COMPONENT_NOT_FOUND = 6Public Const ODBC_ERROR_INVALID_NAME = 7Public Const ODBC_ERROR_INVALID_KEYWORD_VALUE = 8Public Const ODBC_ERROR_INVALID_DSN = 9Public Const ODBC_ERROR_INVALID_INF = 10Public Const ODBC_ERROR_REQUEST_FAILED = 11Public Const ODBC_ERROR_INVALID_PATH = 12Public Const ODBC_ERROR_LOAD_LIB_FAILED = 13Public Const ODBC_ERROR_INVALID_PARAM_SEQUENCE = 14Public Const ODBC_ERROR_INVALID_LOG_FILE = 15Public Const ODBC_ERROR_USER_CANCELED = 16Public Const ODBC_ERROR_USAGE_UPDATE_FAILED = 17Public Const ODBC_ERROR_CREATE_DSN_FAILED = 18Public Const ODBC_ERROR_WRITING_SYSINFO_FAILED = 19Public Const ODBC_ERROR_REMOVE_DSN_FAILED = 20Public Const ODBC_ERROR_OUT_OF_MEM = 21Public Const ODBC_ERROR_OUTPUT_STRING_TRUNCATED = 22 'API Command to create a Data Source Name, not used in this examplePublic Declare Function SQLCreateDataSource Lib &#34;odbccp32.dll&#34; (ByVal hwnd&, ByVal lpszDS&#036;) As Boolean'API to modify/Edit/Create a Data Source NamePublic Declare Function SQLConfigDataSource Lib &#34;odbccp32.dll&#34; (ByVal hwnd As Long, ByVal fRequest As Integer, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Boolean 
Esto sería para crear el ODBC, pon esto en tu formulario:


--- Código: Text ---Public Sub Form_Load()     ObtenerListadoServidoresEnd Sub Private Sub ObtenerListadoServidores() Dim ListaServers As NameListDim i As Integer        Set oSQLServerApp = New SQLDMO.Application    Set ListaServers = oSQLServerApp.ListAvailableSQLServers    '    For i = 1 To ListaServers.Count        cbSQLServers.AddItem ListaServers.Item(i)    Next        If cbSQLServers.ListCount = 1 Then        cbSQLServers.ListIndex = 0    Else        cbSQLServers.ListIndex = -1    End If    Set ListaServers = Nothing    End Sub Private Sub Command1_Click()      GenerarODBCEnd Sub Private Sub GenerarODBC()Dim DSN           As StringDim Server        As StringDim Address       As StringDim Database      As StringDim Description   As StringDim Security      As StringDim SqlDriver As StringDim SQLParameter As String    If cbSQLServers.ListIndex &#60;&#62; -1 Then Server = &#34;SERVER=&#34; & Trim(cbSQLServers.List(cbSQLServers.ListIndex))   If cbSQLServers.ListIndex &#60;&#62; -1 Then Address = &#34;ADDRESS=&#34; & Trim(cbSQLServers.List(cbSQLServers.ListIndex))         DSN = &#34;DSN=NombeODBC&#34;   Database = &#34;DATABASE=BaseDeDatos&#34;   Description = &#34;DESCRIPTION=DSN de Prueba&#34; 'Descripcion del ODBC   Security = &#34;NETWORK=dbmssocn&#34;   SqlDriver = &#34;SQL Server&#34;   SQLParameter = DSN & vbNullChar & Server & vbNullChar & Address & vbNullChar & Security & vbNullChar & Database & vbNullChar & Description & vbNullChar & vbNullChar   SQLConfigDataSource 0&, ODBC_ADD_SYS_DSN, SqlDriver, SQLParameter End Sub 
Esto sería si lo quieres crear por código el ODBC. Por ejemplo podrías hacer una función de que si no existe el ODBC que lo cree cada vez que entras a la aplicación.

Para abrir una conexion utilizando el ODBC sería hacer esto:

--- Código: Text ---Dim cn As ADODB.ConnectionSet cn = New ADODB.Connectioncn.Open &#34;DSN=NombreODBC; UID=Usuario; PWD=Contraseña;&#34; 
Saludos,

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa