Cadenas de Conexion ADO
Cadenas de Conexión ADO
Por: Carlos Antollini
- Introducción
- Conexiones ODBC sin DSN
- Conexiones con DSN
- Conexiones con OLE DB
- Conexion con OLE DB Data Link
Introducción
Generalmente uno de los primeros pasos cuando usted intenta trabajar con bases de datos es establecer la conexión. Usted puede buscar diferentes tipos de conexión, y cada una tiene un diferente modo de conexión. Cuando ustedn intenta establecer una conexión con su base de datos, algunas veces, no conoce la correcta sintáxis de la cadena de conexión que debe utilizar. Es el motivo por el cual escribí este artículo. He querido hacer una compilación de las cadenas de conexión para las bases de datos mas conocidas...
Conexiónes ODBC sin DSN
Estas cadenas de conexión no necesitan tener creada una conexión ODBC en el Panel de Control, basa con tener instado el Controlador ODBC correspondiente a cada base de datos.
Controlador ODBC para dBASE
strConnection = _T("Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;" "Dbq=c:\\DatabasePath;");
Note: Debe especificar el nombre del archivo en la sentencia SQL... Por ejemplo:
CString strQuery = _T("Select Name, Address From Clients.dbf");
Controlador ODBC para Excel
strConnection = _T("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;" bq=C:\\DatabasePath\\DBSpreadSheet.xls;DefaultDir=c:\\databasepath;");
Controlador ODBC para Archivos de Texto
strConnection = _T("Driver={Microsoft Text Driver (*.txt; *.csv)};" "Dbq=C:\\DatabasePath\\;Extensions=asc,csv,tab,txt;");
Si usted esta usando archivos delimitados por tabulaciones, debe crear el archivo schema.ini, y debe establecer la opción: Format=TabDelimited
en la cadena de conexión.
Note: Debe especificar el nombre del archivo en la sentencia SQL... Por ejemplo:
CString strQuery = _T("Select Name, Address From Clients.csv");
Visual FoxPro
Si esta utilizando un database container (contenedor de base de datos), la cadena de conexión deber ser como sigue:
strConnection = _T("Driver={Microsoft Visual Foxpro Driver};UID=;" ourceType=DBC;SourceDB=C:\\DatabasePath\\MyDatabase.dbc;Exclusive=No");
Si esta trabajando sin database container, debe cambiar el parametro SourceType
por DBF
:
strConnection = _T("Driver={Microsoft Visual Foxpro Driver};UID=;" "SourceType=DBF;SourceDB=C:\\DatabasePath\\MyDatabase.dbc;Exclusive=No");
Controlador ODBC para Access
strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};" "Dbq=c:\\DatabasePath\\dbaccess.mdb;Uid=;Pwd=;");
Si esta utilizando un Grupo de Trabajo (Base de datos de sistema): usted necesita indicar la ruta de la base de datos del sistema, el nombre de usuario y el password de la misma. Por lo que tiene dos alternativas: indicar el nombre de usuario y password en la cadena de conexión o en el momento de abrir la conexión. Por ejemplo:
strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};" "Dbq=C:\\VC Projects\\ADO\\Samples\\AdoTest\\dbTestSecurity.mdb;" "SystemDB=C:\\Program Files\\Microsoft Office\\Office\\SYSTEM.mdw;" "Uid=Carlos Antollini;Pwd=carlos");
o también puede ser:
strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};" "Dbq=C:\\VC Projects\\ADO\\Samples\\AdoTest\\dbTestSecurity.mdb;" "SystemDB=C:\\Program Files\\Microsoft Office\\Office\\SYSTEM.mdw;"); if(pDB.Open(strConnection, "DatabaseUser", "DatabasePass")) { ProcesarLosDatos(); pDB.Close(); }
Si desea abrir la base de datos en modo exclusivo:
strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};" "Dbq=c:\\DatabasePath\dbaccess.mdb;Exclusive=1;");
Controlador ODBC para SQL Server
Para seguridad estándar:
strConnection = _T("Driver={SQL Server};Server=MyServerName;" "Trusted_Connection=no;" "Database=MyDatabaseName;Uid=MyUserName;Pwd=MyPassword;");
Para Conexiónes de Confianza (Autenticación de Microsoft Windows NT ):
strConnection = _T("Driver={SQL Server};Server=MyServerName;" "Database=myDatabaseName;Uid=;Pwd=;");
También, usted puede utilizar el parametro Trusted_Connection
que indica que va a utilizar el modo de Autenticación Integrada de Microsoft Windows NT para autorizar el acceso a la base de datos SQL Server. Por ejemplo:
strConnection = _T("Driver={SQL Server};Server=MyServerName;" "Database=MyDatabaseName;Trusted_Connection=yes;");
Si SQL Server esta en ejecución en la misma computadora, usted puede reemplazar el nombre del servidor por el texto: (local)
tal como esta en este ejemplo:
strConnection = _T("Driver={SQL Server};Server=(local);" "Database=MyDatabaseName;Uid=MyUserName;Pwd=MyPassword;");
Si desea conectarse con un servidor remoto de SQL Server entonces debe indicar la ubicación del servidor y el Protocolo de Red que se va a utilizar.
El parametro Address
debe ser un numero de IP y debe incluirse el puerto de conexión. El parametro Network
puede ser uno de los siguientes valores:
dbnmpntw
Win32 Named Pipesdbmssocn
Win32 Winsock TCP/IPdbmsspxn
Win32 SPX/IPXdbmsvinn
Win32 Banyan Vinesdbmsrpcn
Win32 Multi-Protocol (Windows RPC)
Para mas información, ver Q238949.
strConnection = _T("Driver={SQL Server};Server=130.120.110.001;" "Address=130.120.110.001,1052;Network=dbmssocn;Database=MyDatabaseName;" "Uid=myUsername;Pwd=myPassword;");
Controlador ODBC para Oracle
Para el actual Controlador ODBC para Oracle (desarrollado por Microsoft).
strConnect = _T("Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;" "Uid=MyUsername;Pwd=MyPassword;");
Para Controladores ODBC para Oracle anteriores (desarrollados por Microsoft).
strConnect = _T("Driver={Microsoft ODBC Driver for Oracle};" "ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;");
Controlador ODBC para MySQL
Si desea conectarse a una base de datos local, puede utilizar una de las siguientes cadenas de conexión:
strConnect = _T("Driver={MySQL ODBC 3.51 Driver};Server=localhost;" "Database=MyDatabase;User=MyUserName;Password=MyPassword;Option=4;");
Si desea conectarse a una base de datos remota, debe especificar el nombre del servidor o el numero de IP en el parametro Server
, El puero por defecto es el 3306, si es diferente debe indicarlo.
strConnect = _T("Driver={mySQL ODBC 3.51 Driver};Server=MyRemoteHost;" "Port=3306;Option=4;Database=MyDatabase;Uid=MyUsername;Pwd=MyPassword;");
El parametro Option
puede ser uno de los siguientes valores:
1
- El cliente no puede manejar conexiones MyODBC que retornen el ancho real de las columnas.2
- El cliente no recibirá de MySQL el valor verdadero de las filas afectadas por una consulta.Si este parametro esta establecido entonces MySQL retornará 'found rows' en su lugar. Funciona para MySQL 3.21.14 o superior.4
- Genera un archivo de ocurrencias c:\myodbc.loges lo mismo que poner: MYSQL_DEBUG=d:t:O,c::\myodbc.log
en el archivo AUTOEXEC.BAT.8
- No especificar un limite de paquetes para resultados y parametros.16
- Don't prompt for questions even if driver would like to prompt.32
- Habilita o deshabilita el soporte a cursores dinámicos. No esta disponible para MyODBC 2.50.64
- Ignora el uso de los nombres de la bases de datos en 'basedatos.tabla.columna'.128
- Forzar el uso de cursores administrados (ODBC manager cursors) (experimental).256
- Deshabilitar el uso extendido de busqueda (experimental).512
- Rellena los camposCHAR
al tamaño total de la columna.1024
-SQLDescribeCol()
retornará los nombres de columnas con todas sus características2048
- Usar protocolo cliente/servidor comprimido.4096
- Indicar al servidor que ignore el espacio despues del nombre de una función y antes del caracter '(' (necesario para PowerBuilder). Esto hará todos los nombres de funciones palabrasclave (Keywords).8192
- Conectar mediante named pipes a una instancia de mysqld corriendo sobre Windows NT.16384
- Cambiar el tipo de dato de las columnas deLONGLONG
aINT
(algunas aplicaciones no pueden manejar el tipo de datoLONGLONG
).32768
- Retornar 'user' comoTable_qualifier
yTable_owner
desde SQLTables (experimental).65536
- Leer parametros desde el cliente y grupos ODBC del archivo de configuración my.cnf.131072
- Agregar algunas verificaciones de seguridad extra por (No debería ser necesario, pero...)
Si usted desea tener multiples opciones, usted debe sumar los indicadores anteriores. Por ejemplo: 16 + 1024 = 1030, entonces el parametro denería ir de esta manera Option= 1030;
Para mas información, visite Manual de referencia MyODBC.
Controlador ODBC para AS400
strConnect = _T("Driver={Client Access ODBC Driver (32-bit)};System=myAS400;" "Uid=myUsername;Pwd=myPassword;");
Controlador ODBC para SyBase
strConnect = _T("Driver={Sybase System 10};Srvr=MyServerName;Uid=MyUsername;" "Pwd=myPassword;");
ODBC Driver for Sybase SQL AnyWhere
strConnect = _T("ODBC;Driver=Sybase SQL Anywhere 5.0;" "DefaultDir=C:\\DatabasePath\;Dbf=C:\\SqlAnyWhere50\\MyDatabase.db;" "Uid=MyUsername;Pwd=MyPassword;Dsn=\"\";");
Conexiones ODBC con DSN
ODBC DSN
strConnect = _T("DSN=MyDSN;Uid=MyUsername;Pwd=MyPassword;");
Proveedores OLE DB
Proveedor OLE DB para SQL Server
Para seguridad estándar:
strConnect = _T("Provider=sqloledb;Data Source=MyServerName;" "Initial Catalog=MyDatabaseName;" "User Id=MyUsername;Password=MyPassword;");
Para conexiones de confianza: ( Seguridad Integrada de Microsoft Windows NT):
strConnect = _T("Provider=sqloledb;Data Source=MyServerName;" "Initial Catalog=MyDatabaseName;" "Integrated Security=SSPI;");
Si usted desea conectarse a una Instancia de (SQL server 2000 o superior), debe especificar el parametro Data Source=NombreServidorInstancia
tal como se muestra en el ejemplo siguiente:
strConnect = _T("Provider=sqloledb;Data Source=NombreServidorInstancia;" "Initial Catalog=MyDatabaseName;User Id=MyUsername;Password=MyPassword;");
Si desea conectarse con SQL corriendo en la misma computadora, debe espeficcar la palabra clave (local)
en el parametro Dara Source
. Por ejemplo:
strConnect = _T("Provider=sqloledb;Data Source=(local);" "Initial Catalog=myDatabaseName;" "User ID=myUsername;Password=myPassword;");
Para conectarse a SQL Server corriendo en un equipo remoto (mediante un numero de IP):
strConnect = _T("Provider=sqloledb;Network Library=DBMSSOCN;" "Data Source=130.120.110.001,1433;" "Initial Catalog=MyDatabaseName;User ID=MyUsername;" "Password=MyPassword;");
Proveedor OLE DB para MySQL (por Todd Smith)
strConnection = _T("Provider=MySQLProv;Data Source=test");
Donde test
es el nombre de la base de datos MySQL. Tambien puede reemplazar el nombre de la base de datos por las siguiente cadena de conexión: server=localhost;DB=test
Proveedor OLE DB para AS400
strConnect = _T("Provider=IBMDA400;Data source=myAS400;User Id=myUsername;" "Password=myPassword;");
Para mas información, visite: Usando Proveedor OLE DB para AS/400 y VSAM.
Proveedor OLE DB para Active Directory
strConnect = _T("Provider=ADSDSOObject;User Id=myUsername;Password=myPassword;");
Para mas información, visite: Microsoft OLE DB Provider for Microsoft Active Directory Service.
Proveedor OLE DB para DB2
Si esta utilizando una conexión TCP/IP :
strConnect = _T("Provider=DB2OLEDB;Network Transport Library=TCPIP;" "Network Address=130.120.110.001;" "Initial Catalog=MyCatalog;Package Collection=MyPackageCollection;" "Default Schema=MySchema;User ID=MyUsername;Password=MyPassword;");
Si esta utilizando una conexión APPC:
strConnect = _T("Provider=DB2OLEDB;APPC Local LU Alias=MyLocalLUAlias;" "APPC Remote LU Alias=MyRemoteLUAlias;Initial Catalog=MyCatalog;" "Package Collection=MyPackageCollection;Default Schema=MySchema;" "User ID=MyUsername;Password=MyPassword;");
Para mas información, visite: Using the OLE DB Provider for DB2.
Proveedor OLE DB para Microsoft Jet
- Conectando a un archivo Access usando el proveedor JET OLE DB:
Con seguridad estándar:
strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;" "Data Source=C:DatabasePathMmDatabase.mdb;" "User Id=admin;Password=;");
Usando seguridad basada en Workgroup (Base de datos de sistema):
strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;" "Data Source=C:DataBasePathmydb.mdb;" "Jet OLEDB:System Database=MySystem.mdw;"); pRs.Open(strConnect, "MyUsername", "MyPassword");
- Conectando a Hojas de Excel usando Proveedor JET OLE DB:
strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;" "Data Source=C:DatabasePathDBSpreadSheet.xls;" "Extended Properties=""Excel 8.0;HDR=Yes;"";");
Nota: Si
"HDR=Yes"
, el proveedor no incluirá la primera fila de la selección en el resultado. Si"HDR=No"
, se incluirá la primera fila de la selección en el resultado.Para mas información, visite: Q278973.
- Connectando a un artivo de texto con el Proveedor JET OLE DB:
strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:DatabasePath;" "Extended Properties=""text;" "HDR=Yes;FMT=Delimited;"";");
Nota: Debe especificar el nombre del archivo en la sentencia SQL:
CString strQuery = _T("Select Name, Address From Clients.txt");
Para mas información, viste: Q262537.
- Conectando al correo personal de Outlook 2000 usando el Proveedor JET OLE DB: (Por J. Cardinal)
strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Outlook 9.0;" "MAPILEVEL=;DATABASE=C:Temp;")
Reemplazar
c:Temp
con cualquier otra carpeta temporal. Esto creará un esquema de archivos que mostrará todos los campos disponibles. El parametro en blancoMAPILEVEL
indica el folder de nivel superior. - Conectando a Exchange mail box a travéz de JET: (Por J. Cardinal)
strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Exchange 4.0;" "MAPILEVEL=Mailbox - Pat Smith|;DATABASE=C:Temp;")
Debe reemplazar
C:Temp
por cualquier carpeta temporal.Reemplazar Pat Smith por el nombre del buzon de entrada , debe mantener la barra vertical | para indicar el folder de nivel superior. Ponga un subfolder despues de la barra vertical | para acceder a un folder en específico.
Nota: Usted puede realizar consultas SQL sobre los correos almacenados como si fuera una base de datos... Por ejemplo:
CString strQuery = _T("SQL "SELECT Contacts.* FROM Contacts;");
Para mas información, visite: The Jet 4.0 Exchange/Outlook IISAM.
Proveedor OLE DB para Bases de datos ODBC
Si desea conectarse a Microsoft Access:
strConnect = _T("Provider=MSDASQL;Driver={Microsoft Access Driver (*.mdb)};" "Dbq=c:DatabasePathMyDatabase.mdb;Uid=MyUsername;Pwd=MyPassword;");
Si desea conectarse con SQL Server:
strConnect = _T("Provider=MSDASQL;Driver={SQL Server};Server=MyServerName;" "Database=MyDatabaseName;Uid=MyUsername;Pwd=MyPassword;");
Si desea utilizar un DSN:
strConnect = _T("Provider=MSDASQL;PersistSecurityInfo=False;" "Trusted_Connection=Yes;" "Data Source=MyDSN;catalog=MyDatabase;");
Para mas información, visite: Microsoft OLE DB Provider for ODBC.
Proveedor OLE DB para OLAP
Microsoft® OLE DB para Online Analytical Processing (OLAP) es un grupo de objetos e interfaces que extienden el uso del proveedor OLE DB para el acceso a almacenamiento de datos multidimensional.
strConnect = _T("Provider=MSOLAP;Data Source=MyOLAPServerName;" "Initial Catalog=MyOLAPDatabaseName;");
Utilizando HTTP:
Esta característica habilita a una aplicacion cliente conectarse a un Analysis Server a travez de Microsoft® Internet Information Services (IIS) especificando una dirección URL en la propiedad Data Source
de las cadenas de conexión de una aplicación cliente. Éste medoto de conexión permite utilizar el servicio PivotTable® para hacer un tunel por medio de los firewalls o servidores proxy hacia un Analysis Server. Un tipo especial de Active Server Pages (ASP), msolap.asp, habilita la conexión a travez de IIS. El directorio en el que éste archivo debe situarse tiene que incluirse como parte de una URL entonces se conectará con el servidor, por ejemplo: http://www.myserver.com/myolap/
Usando una URL
strConnect = _T("Provider=MSOLAP;Data Source=http://MyOLAPServerName/;" "Initial Catalog=MyOLAPDatabaseName;");
Usando SSL
strConnect = _T("Provider=MSOLAP;Data Source=https://MyOLAPServerName/;" "Initial Catalog=MyOLAPDatabaseName;");
Para mas información, visite: OLE DB for OLAP, Connecting Using HTTP.
Proveedor OLE DB para Oracle
Proveedor OLE DB para Oracle (de Microsoft)
El Proveedor OLE DB de Microsoft para Orable permite acceso ADO a bases de datos Oracle.
strConnect = _T("Provider=MSDAORA;Data Source=MyOracleDB;User Id=myUsername;" "Password=myPassword;");
Para mas información,visite: Microsoft OLE DB Provider for Oracle.
Proveedor OLE DB para Oracle (de Oracle).
Utilizando seguridad estándar:
strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;" "User Id=myUsername;Password=myPassword;");
Para conexiones de confianza:
- OS Authenticated, cadena de conexión ID de usuario a "/":
strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;" "User Id=/;Password=;");
- OS Authenticated usando OSAuthent:
strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;")
For more information, see: Oracle Provider for OLE DB Developers Guide.
Proveedor OLE DB para Visual FoxPro
strConnect = _T("Provider=vfpoledb;" "Data Source=C:DatabasePathMyDatabase.dbc;");
Para mas información, visite: Microsoft OLE DB Provider for Visual FoxPro.
Proveedor OLE DB para Index Server (por Chris Maunder)
strConnect = _T("provider=msidxs;Data Source=MyCatalog;");
Para mas información, visite: Microsoft OLE DB Provider for Microsoft Indexing Service.
Conexiones OLE DB Data Link
strConnection = _T("File Name=c:DataBasePathDatabaseName.udl;");
Si usted desea crear un Archivo Data Link (Data Link File), puede crear un nuevo archivo txt en blanco, cambiar la extension a .udl, luego hacer doble click sobre el archivo, y el sistema operativo llamará a la aplicación correspondiente para modificar/crear el archivo.
Otros Artículos en esta sección
-
na forma de utilizar el control ActiveX MSFlexGrid en aplicaciones Visual C++ basadas en MFC, este control es útil para visualizar datos.Puedes usar este control en tus aplicaciones Visual C++ para visualizar imágenes dentro de un formulario MFC o también en entornos derivados de CWnd.El articulo muestra como utilizar MYSQL API para el acceso a bases de datos MySQL utilizando Visual C++ y MFC.¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro deVisual C++ »