Crear Orígenes de datos ODBC que utiliza SqlConfigDataSource

25/08/2007 - 03:44 por Faiverlgr | Informe spam
Estoy tratando de crear un ODBC por codigo desde VB a una base de datos
FoxPro (*.dbc) y talvez el driver no es el adecuado y no crea el DSN.

Les agradezco si detectan algún error, el código:

Dim lcAttributes As String
Dim lcDriver As String
Dim intRet As Long
Const ODBC_ADD_DSN = 1

lcDriver = "Microsoft Visual FoxPro Driver"
lcAttributes = lcAttributes & "DSN=Nombre;" & Chr$(0)
lcAttributes = lcAttributes & "Description=Descrip de Base de datos;" &
Chr$(0)
lcAttributes = lcAttributes & "SourceTypeÛC;" & Chr$(0)
lcAttributes = lcAttributes & "SourceDB=C:\temp\datos.dbc;" & Chr$(0)
lcAttributes = lcAttributes & "Collate=SPANISH;" & Chr$(0)
lcAttributes = lcAttributes & "Exclusive=No;" & Chr$(0)
lcAttributes = lcAttributes & "BackgroundFetch=Sí" & Chr$(0)
lcAttributes = lcAttributes & "SetNoCountOn=No;" & Chr$(0)
lcAttributes = lcAttributes & "Deleted=Sí;" & Chr$(0)
lcAttributes = lcAttributes & "Null=No;"

intRet = SQLConfigDataSource(0, ODBC_ADD_DSN, lcDriver, lcAttributes)

If intRet Then
MsgBox "Se ha creado el DSN"
Else
MsgBox "No se ha podido crear el DSN"
End If
 

Leer las respuestas

#1 Héctor Miguel
25/08/2007 - 07:11 | Informe spam
hola, !

Estoy tratando de crear un ODBC por codigo desde VB a una base de datos FoxPro (*.dbc)
y talvez el driver no es el adecuado y no crea el DSN.
Les agradezco si detectan algun error, el codigo:



entre VFP, DSN, *crear* [o dar de alta] origenes de datos ODBC [y quizas algunos otros detalles]...
es probable que debieras proporcionar mayores detalles y/o confirmar si [o no] alguna vez has tenido exito -?-
[y/o esperar los comentarios de tu misma consulta en el foro de VB] :))

[en via de mientras]... te paso [hasta donde se] algo de informacion relacionada con tu consulta
si cualquier duda [o infrmacion adicional]... comentas ?
saludos,
hector.

1) informacion de la MSKB y MSDN:

About ODBC data sources
http://msdn2.microsoft.com/en-us/library/Aa190013(office.10).aspx

XL: Como Utilizar DSN de archivo y conexiones sin DSN
http://support.microsoft.com/kb/q165866/

OLE DB Provider for Visual FoxPro
http://msdn2.microsoft.com/en-us/library/Aa975609(VS.71).aspx

Como utilizar ADO con ASP para mostrar datos de Visual FoxPro
http://support.microsoft.com/kb/q165492/

2) alguna conversacion anterior referida a VFP [aunque ya deben ir +/- por la version 8] -?-

-> para que puedas usar bases de datos de VFP... ANTES 'deberas'...
dar de alta en los origenes de datos odbc [open database conectitivity]
la version mas reciente de mdac [microsoft data access component]

-> obten la version mas reciente del componente [la 2.8] en: http://tinyurl.com/49duk
selecciona primero el idioma en que necesitas la instalacion del componente
lee bien [o imprime] las instrucciones antes de iniciar la descarga
no te olvides de descargar tambien el 'parche' [Q832483]

-> despues, revisa la informacion acerca de como 'dar de alta' el componente en:
http://support.microsoft.com/defaul...-es;197893
seccion: mas informacion - crear el origen de datos en el panel de control
[panel de control -> herramientas administrativas -> origenes de datos odbc]
nota: el enlace [en esta pagina] para 'llegar' a la version mas reciente es mas 'tardado'

-> hay otra opcion [siguiendo las 'puras' instrucciones para VFP]
[requiere como minimo la version 2.6 del componente mdac ->que es anterior<- a la 2.8]
visita: http://msdn.microsoft.com/vfoxpro/downloads
pulsa en 'product updates'...
pulsa en: 'mocrosoft ole-db provider for visual foxpro 8.0'

-> y... si todo lo anterior 'falla' o... ya tienes instalada la version 2.8 de mdac
'pero'... la version que te 'reconoce' la conexion odbc a vfp es la 1.x
[revisa la version 'instalada' en el archivo de libreria vfpodbc.dll en c:\windows\system[32]\]
entonces... podrias obtener la version 6.x de la libreria vfpodbc.dll en:
http://msdn.microsoft.com/vfoxpro/d...fault.aspx
[ojo con el idioma que selecciones]

__ el codigo expuesto [parcial] __
Dim lcAttributes As String
Dim lcDriver As String
Dim intRet As Long
Const ODBC_ADD_DSN = 1
lcDriver = "Microsoft Visual FoxPro Driver"
lcAttributes = lcAttributes & "DSN=Nombre;" & Chr$(0)
lcAttributes = lcAttributes & "Description=Descrip de Base de datos;" & Chr$(0)
lcAttributes = lcAttributes & "SourceTypeÛC;" & Chr$(0)
lcAttributes = lcAttributes & "SourceDB=C:\temp\datos.dbc;" & Chr$(0)
lcAttributes = lcAttributes & "Collate=SPANISH;" & Chr$(0)
lcAttributes = lcAttributes & "Exclusive=No;" & Chr$(0)
lcAttributes = lcAttributes & "BackgroundFetch=Sí" & Chr$(0)
lcAttributes = lcAttributes & "SetNoCountOn=No;" & Chr$(0)
lcAttributes = lcAttributes & "Deleted=Sí;" & Chr$(0)
lcAttributes = lcAttributes & "Null=No;"
intRet = SQLConfigDataSource(0, ODBC_ADD_DSN, lcDriver, lcAttributes)
If intRet Then
MsgBox "Se ha creado el DSN"
Else
MsgBox "No se ha podido crear el DSN"
End If

Preguntas similares