Crear origen de datos ODBC desde visual basic

Juan
08 de Diciembre del 2004
Hola, necesito crear varios origenes de datos ODBC (DSN) desde mi programa de visual basic para poder utilizarlos luego para conectarme a una base de datos, he encontrado algun ejemplo de como hacerlo para access y sql server, pero no se como hacerlo para otras bases de datos (no se cual son los parámetros a utilizar), igual hay alguna forma mas facil de hacerlo, ¿Alguien me puede ayudar? Gracias.

sdemingo
08 de Diciembre del 2004
Hola,

¿qué tienes de malo este ejemplo?????


Ejemplo paso a paso
Inicie un Nuevo proyecto.
En la ficha Avanzado del cuadro de diálogo Opciones en el menú Herramientas, establezca un Argumento de Compilación condicional que se denomina WIN32 igual que 1 si utiliza 32 bits Visual Basic 4.0 o 0 si utiliza Visual Basic 4.0 de 16 bits.
Agregue dos CommandButtons al formulario predeterminado.
Agregue el código siguiente al General Declarations: Option Explicit

'Constant Declaration
Private Const ODBC_ADD_DSN = 1 ' Add data source
Private Const ODBC_CONFIG_DSN = 2 ' Configure (edit) data source
Private Const ODBC_REMOVE_DSN = 3 ' Remove data source
Private Const vbAPINull As Long = 0& ' NULL Pointer

'Function Declare
#If WIN32 Then

Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
(ByVal hwndParent As Long, ByVal fRequest As Long, _
ByVal lpszDriver As String, ByVal lpszAttributes As String) _
As Long
#Else
Private Declare Function SQLConfigDataSource Lib "ODBCINST.DLL" _
(ByVal hwndParent As Integer, ByVal fRequest As Integer, ByVal _
lpszDriver As String, ByVal lpszAttributes As String) As Integer
#End If

Agregue el código siguiente al evento Click de Comando1: #If WIN32 Then
Dim intRet As Long
#Else
Dim intRet As Integer
#End If
Dim strDriver As String
Dim strAttributes As String

'Set the driver to SQL Server because it is most common.
strDriver = "SQL Server"
'Set the attributes delimited by null.
'See driver documentation for a complete
'list of supported attributes.
strAttributes = "SERVER=SomeServer" & Chr$(0)
strAttributes = strAttributes & "DESCRIPTION=Temp DSN" & Chr$(0)
strAttributes = strAttributes & "DSN=DSN_TEMP" & Chr$(0)
strAttributes = strAttributes & "DATABASE=pubs" & Chr$(0)
'To show dialog, use Form1.Hwnd instead of vbAPINull.
intRet = SQLConfigDataSource(vbAPINull, ODBC_ADD_DSN, _
strDriver, strAttributes)
If intRet Then
MsgBox "DSN Created"
Else
MsgBox "Create Failed"
End If

Agregue el código siguiente al evento Click de Comando2: #If WIN32 Then
Dim intRet As Long
#Else
Dim intRet As Integer
#End If
Dim strDriver As String
Dim strAttributes As String

'Set the driver to SQL Server because most common.
strDriver = "SQL Server"
'Set the attributes delimited by null.
'See driver documentation for a complete list of attributes.
strAttributes = "DSN=DSN_TEMP" & Chr$(0)
'To show dialog, use Form1.Hwnd instead of vbAPINull.
intRet = SQLConfigDataSource(vbAPINull, ODBC_REMOVE_DSN, _
strDriver, strAttributes)
If intRet Then
MsgBox "DSN Deleted"
Else
MsgBox "Delete Failed"
End If

Ejecute el proyecto.
Haga clic en Comando1 para agregar un DSN que se denomina DSN_TEMP.
Haga clic en Comando2 para quitar el DSN que se denomina DSN_TEMP.

Para hacerlo para access en lugar de sqlserver tendrás que cambiar el motor a Microsoft Jet, etc....

Hazlo manualmente para ver los parámetros que tienes que cambiar luego por código...

a mi me parece bastante sencillo

salu2
sdemingo

Juan
08 de Diciembre del 2004
Mi problema es que tengo que crear un origen de datos distinto, de otra base datos (Navision Financial) y no se cuales son los atributos que tengo que ponerle, me puedes ayudar?

sdemingo
08 de Diciembre del 2004
Navision Financial ¿?¿?¿?¿? Me acabo de quedar todo loco :-O

No tengo ni idea, I'm sorry

Juan
08 de Diciembre del 2004
Como ves los parámetros que tienes que utilizar?, porque si los pones manualmente no se llaman exactamente igual que lo que utilizas en el ejemplo.
Por ejemplo, lo que en el ejemplo llamas DSN, cuando lo haces manualmente se llama Nombre del origen de datos. Como podria saber que tengo que utilizar?
Gracias

Juan
08 de Diciembre del 2004
No puedes ayudarme?

sdemingo
08 de Diciembre del 2004
Cuando lo haces manualmente se llama igual DSN...

Data Source Name = Nombre de Origen de Datos

Es que no conozco para nada ese gestor de base de datos tuyo...

Pero ya te digo que será cambiando los parámetros y el motor para adecuarlos a tu bd

salu2
sdemingo

blackozz
08 de Diciembre del 2004
Muy bueno el ejemplo, no tuve problemas y se crean bien los origenes, me sirvió de mucho....

Gracias.....

chema57
08 de Diciembre del 2004
Juan me puedes decir donde estan esos ejemplos para access o como modificar el ejemplo este para access