You are on page 1of 14

En forma casi similar a realizar una conexion mediante vistas remotas de una base de datos en SYBASE, SQL SERVER

es similar a efectuar la conexion mediante una vista remota a visual foxpro con una plataforma en MYSQL. Pues, en muchas preguntas contenidas por la mayoria de los usuarios es la siguiente Como realizamos una conexion y como nos conectamos a las tablas contenidas dentro de las mismas de una base de datos del MYSQL estando en visual foxpro.? Pues la respuesta es sencilla, recordemos que si necesitamos conectarnos, lo que debemos hacer es primero la conexion , pues eso es mediante una conexion ODBC o una conexion tipo ADO ya sea en forma automatica dentro del ejecutable inicial de tu propio sistema dentro del visual foxpro. ******************************************************************************* Para iniciar procedere a realizar una conexion a SQL estando en Visual foxpro, para efectos realizar la conexion remota, para ello considerare hacer la conexion a un servidor llamado SERVERPROXY, y la Base de datos lo llamare PADRON, lo puedes poner mediante una funcin y cada vez que necesites la conexin la mandas a llamar.************************************************************************** ***** FUNCTION CONECTAR(PADRON) lcDSNLess3="driver=SQL Server;server=SERVERPROXY;Trusted_Connection=yes;Persist Security Info=False;database="+MiBasedeDatos THANDLE = SQLSTRINGCONNECT(lcDSNLess3) If THANDLE < 0 &&Si no Se logra Conectar =MessageBox("Ocurrio error ",0+64+0,"Error en conectar()") QUIT Else = SQLSETPROP(THANDLE, 'Asynchronous', .F.) Endif RETURN(THANDLE) ******************** de esta manera te conectas , si hay problemas te mandara un error . si todo te salio bien es utilizar la conexin para realizar una consulta. Local Handle,Cbusca Handle=Conectar("PADRON") Cbusca="Select * From clientes" =SQLEXEC(Handle,Cbusca,"CoRders") && Ejecuto la Consulta ************************************************************************** Otra segunda manera e ejecutarla es la siguiente : ************************************************************************** PUBLIC PuConecion PuConecion= SQLCONNECT('ODBC','PADRON','sa')

IF PuConecion<0 MESSAGEBOX("No se pudo establecer la conexin con Base de Datos",48,"Ventana de Control") RELEASE Thisform ENDIF y despus hacer la consulta sql loSqlC= "SELECT * FROM clientes " loEstadoSQL=sqlexec(PuConecion,loSqlC,"LoTablaLocal") IF loEstadoSQL <= 0 MESSAGEBOX("Error al abrir Clientes",48,"Ventana de Control",200) ENDIF Sele LoTablaLocal y de ahi puedes hacer las consultas a las tablas requeridas. ************************************************************************ Ahora crearemos la conexion a MYSQL cuyos procedimientos como veras son casi similares y faciles de entender, esperando que esto te sirva de ayuda te invito a que leas todos los manuales de bolsillo I, II II y IV acerca de programacion en el internet dentro de la web de mygnet. *********************************************************************** xStrCon = "DRIVER={MySQL ODBC 3.5 Driver};"; +"SERVER=IPdelServidor;"; +"DATABASE=Pon el nombre de tu base de datos del MYSQL;"; +"USER=root;"; +"PASSWORD=pon tu clave del DSN;"; +"OPTION=3;" xControl = SQLSTRINGCONNECT(xStrCon) Donde xControl queda como una variable de memoria apuntador a la base de datos, para utilizarlo haces lo siguiente: sqlexec(xControl,"select * from clientes","listaClientes") ******************************************************************************* Asi mismo aadiendo a todo esto quiero agregar un comentario dado a una de las personas que se han contactado desde mexico, panama y venezuela solicitando dicha pregunta el cual explico en forma sintetizada, ya que esto los detalle en uno de los manuales, detallando lneas

Cadenas de Conexin ADO


Por: Carlos Antollini

Introduccin Conexiones ODBC sin DSN o dBASE o Excel o Text File o Visual FoxPro o Access database o SQL Server o Oracle o MySQL o AS400 o Sybase o Sybase SQL AnyWhere Conexiones con DSN o ODBC DSN Conexiones con OLE DB o SQL Server o MySQL o AS400 o Active Directory o DB2 o Microsoft Jet o ODBC Databases o OLAP o Oracle o Visual FoxPro o Index Server Conexion con OLE DB Data Link o Data Link File - UDL

Introduccin
Generalmente uno de los primeros pasos cuando usted intenta trabajar con bases de datos es establecer la conexin. Usted puede buscar diferentes tipos de conexin, y cada una tiene un diferente modo de conexin. Cuando ustedn intenta establecer una conexin con su base de datos, algunas veces, no conoce la correcta sintxis de la cadena de conexin que debe utilizar. Es el motivo por el cual escrib este artculo. He querido hacer una compilacin de las cadenas de conexin para las bases de datos mas conocidas...

Conexines ODBC sin DSN


Estas cadenas de conexin no necesitan tener creada una conexin 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 opcin: Format=TabDelimited en la cadena de conexin. 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 conexin 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 conexin o en el momento de abrir la conexin. 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 tambin 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 estndar:


strConnection = _T("Driver={SQL Server};Server=MyServerName;" "Trusted_Connection=no;" "Database=MyDatabaseName;Uid=MyUserName;Pwd=MyPassword;");

Para Conexines de Confianza (Autenticacin de Microsoft Windows NT ):


strConnection = _T("Driver={SQL Server};Server=MyServerName;" "Database=myDatabaseName;Uid=;Pwd=;");

Tambin, usted puede utilizar el parametro Trusted_Connection que indica que va a utilizar el modo de Autenticacin 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 ejecucin 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 ubicacin 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 conexin. El parametro Network puede ser uno de los siguientes valores:
dbnmpntw dbmssocn dbmsspxn dbmsvinn dbmsrpcn

Win32 Named Pipes Win32 Winsock TCP/IP Win32 SPX/IPX Win32 Banyan Vines Win32 Multi-Protocol (Windows RPC)

Para mas informacin, 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 conexin:
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.log es 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 dinmicos. 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 campos CHAR al tamao total de la columna. 1024 - SQLDescribeCol() retornar los nombres de columnas con todas sus caractersticas 2048 - Usar protocolo cliente/servidor comprimido. 4096 - Indicar al servidor que ignore el espacio despues del nombre de una funcin 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 de LONGLONG a INT (algunas aplicaciones no pueden manejar el tipo de dato LONGLONG). 32768 - Retornar 'user' como Table_qualifier y Table_owner desde SQLTables (experimental). 65536 - Leer parametros desde el cliente y grupos ODBC del archivo de configuracin my.cnf.

131072

- Agregar algunas verificaciones de seguridad extra por (No debera ser necesario, pero...)

Si usted desea tener multiples opciones, usted debe sumar los indicadores anteriores. Por ejemplo: 16 + 1024 = 1030, entonces el parametro denera ir de esta manera Option=
1030;

Para mas informacin, visite Manual de referencia MyODBC. Controlador ODBC para AS400
strConnect = _T("Driver={Client Access ODBC Driver (32bit)};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 estndar:
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 conexin:
server=localhost;DB=test

Proveedor OLE DB para AS400


strConnect = _T("Provider=IBMDA400;Data source=myAS400;User Id=myUsername;" "Password=myPassword;");

Para mas informacin, 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 informacin, visite: Microsoft OLE DB Provider for Microsoft Active Directory Service.

Proveedor OLE DB para DB2 Si esta utilizando una conexin 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 conexin 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 informacin, 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 estndar:
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 seleccin en el resultado. Si "HDR=No", se incluir la primera fila de la seleccin en el resultado. Para mas informacin, 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 informacin, 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 blanco MAPILEVEL indica el folder de nivel superior.

Conectando a Exchange mail box a travz 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 especfico. 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 informacin, 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 informacin, 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 caracterstica habilita a una aplicacion cliente conectarse a un Analysis Server a travez de Microsoft Internet Information Services (IIS) especificando una direccin URL en la propiedad Data Source de las cadenas de conexin de una aplicacin cliente. ste medoto de conexin 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 conexin 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 informacin, 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 informacin,visite: Microsoft OLE DB Provider for Oracle.


Proveedor OLE DB para Oracle (de Oracle).

Utilizando seguridad estndar:


strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;" "User Id=myUsername;Password=myPassword;");

Para conexiones de confianza:


OS Authenticated, cadena de conexin 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 informacin, 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 informacin, visite: Microsoft OLE DB Provider for Microsoft Indexing Service.

Conexiones OLE DB Data Link


Data Link File - UDL
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 aplicacin correspondiente para modificar/crear el archivo.

You might also like