crear ODBC vÃa código
Por favor alguien que me ayude, necesito crear un ODBC vÃa código visual basic .net, capaz de crear un DSN de Sistema desde mi programa para Access.
gracias
gracias
Estimado/a Danysan
El siguiente código llama a una API de windows para crear un ODBC para access. Está en VFP8.0, pero será sencillo transformarlo hacia VB.NET.
Ten en cuenta que las lÃneas que comienzan con * son de comentario y que un punto y coma (;) indica que la lÃnea sigue debajo. Casi solo deberás cambiar la declaración de la API, que serÃa algo asÃ
Declare Function SQLConfigDataSource Lib ODBCCP32 (ByVal hwndParent AS Integer,ByVal fRequest AS Integer, ByVal lpszDriver as String, ByVal lpszAttributes as String
PROCEDURE CrearODBCAccess
*CREA EL ORIGEN DE DATOS "prueba" PARA BASES DE DATOS Access
LOCAL lcDriver, lcAttributes, llRetVal, lnIsAdded
*!* Instrucciones DECLARE DLL para manipular DataSources
DECLARE INTEGER SQLConfigDataSource IN ODBCCP32.dll INTEGER hwndParent,;
INTEGER fRequest, STRING lpszDriver, STRING lpszAttributes
*!* Valores
*'DSN=DataBase MDB' + CHR(0) + 'Description=Access ODBC Driver' +;
* CHR(0) + 'uid=' + CHR(0) + 'pwd=' + CHR(0) + 'DBQ=datos.mdb'
lcDriver = "Microsoft Access Driver (*.mdb)" + CHR(0)
lcAttributes = ;
"DSN=abalt" + CHR(0) +;
"Description=NOMBRE DEL ODBC" + CHR(0) +;
"uid=" + CHR(0) +;
"pwd=" + CHR(0) +;
"DBQ=RUTA COMPLETA DE LA BASE DE DATOS"
'*!* Agregar el nuevo DataSource DNS
lnIsAdded = SQLConfigDataSource(0, 1, lcDriver, lcAttributes)
'*!* Valores
llRetVal = (lnIsAdded = 1)
*!* Retorno
RETURN llRetVal
IF llRetVal=.f.
MESSAGEBOX("No es posible crear el controlador ODBC."+CHR(13)+;
"ComunÃquese con el servicio técnico.",16,"Error de inicialización")
ENDIF
ENDPROC
Saludos cordiales
Gabriel Dameñov
www.gdmsargentina.com.ar
El siguiente código llama a una API de windows para crear un ODBC para access. Está en VFP8.0, pero será sencillo transformarlo hacia VB.NET.
Ten en cuenta que las lÃneas que comienzan con * son de comentario y que un punto y coma (;) indica que la lÃnea sigue debajo. Casi solo deberás cambiar la declaración de la API, que serÃa algo asÃ
Declare Function SQLConfigDataSource Lib ODBCCP32 (ByVal hwndParent AS Integer,ByVal fRequest AS Integer, ByVal lpszDriver as String, ByVal lpszAttributes as String
PROCEDURE CrearODBCAccess
*CREA EL ORIGEN DE DATOS "prueba" PARA BASES DE DATOS Access
LOCAL lcDriver, lcAttributes, llRetVal, lnIsAdded
*!* Instrucciones DECLARE DLL para manipular DataSources
DECLARE INTEGER SQLConfigDataSource IN ODBCCP32.dll INTEGER hwndParent,;
INTEGER fRequest, STRING lpszDriver, STRING lpszAttributes
*!* Valores
*'DSN=DataBase MDB' + CHR(0) + 'Description=Access ODBC Driver' +;
* CHR(0) + 'uid=' + CHR(0) + 'pwd=' + CHR(0) + 'DBQ=datos.mdb'
lcDriver = "Microsoft Access Driver (*.mdb)" + CHR(0)
lcAttributes = ;
"DSN=abalt" + CHR(0) +;
"Description=NOMBRE DEL ODBC" + CHR(0) +;
"uid=" + CHR(0) +;
"pwd=" + CHR(0) +;
"DBQ=RUTA COMPLETA DE LA BASE DE DATOS"
'*!* Agregar el nuevo DataSource DNS
lnIsAdded = SQLConfigDataSource(0, 1, lcDriver, lcAttributes)
'*!* Valores
llRetVal = (lnIsAdded = 1)
*!* Retorno
RETURN llRetVal
IF llRetVal=.f.
MESSAGEBOX("No es posible crear el controlador ODBC."+CHR(13)+;
"ComunÃquese con el servicio técnico.",16,"Error de inicialización")
ENDIF
ENDPROC
Saludos cordiales
Gabriel Dameñov
www.gdmsargentina.com.ar
