Compartir a través de


Administrar conexiones con paso a través de SQL

Cuando crea una vista remota, debe elegir un nombre de origen de datos ODBC o un nombre de conexión que posteriormente se utiliza como canalización para el servidor remoto, una vez activada la vista. Para tener acceso a datos remotos directamente con paso a través de SQL, es necesario disponer del controlador para una conexión activa. Un controlador es un valor que hace referencia a un objeto; en este caso, el controlador hace referencia a una conexión de origen de datos. Para obtener un controlador, debe solicitar una conexión con el origen de datos utilizando la función SQLCONNECT( ) o SQLSTRINGCONNECT( ). Si la conexión se realiza correctamente, la aplicación recibirá un controlador de conexión para su uso en llamadas posteriores de Visual FoxPro.

La aplicación puede solicitar múltiples conexiones para un origen de datos. También puede trabajar con múltiples orígenes de datos ODBC solicitando una conexión con cada origen de datos al que desea tener acceso. Si desea reducir el número de conexiones utilizadas, puede configurar vistas remotas para compartir la misma conexión. Puede desconectarse de un origen de datos mediante la función SQLDISCONNECT( ).

Sugerencia   Visual FoxPro se basa en la definición del origen de datos ODBC almacenada en el archivo Odbc.ini de Windows o en el registro de Windows NT para conectarse a un origen de datos. Si cambia el nombre de la información de inicio de sesión para un origen de datos, tenga presente que estos cambios pueden influir en que una aplicación que utilice ese origen de datos pueda conectarse o no al servidor remoto deseado.

Controlar propiedades de entorno y de conexión

El entorno cliente-servidor se establece cada vez que se abre Visual FoxPro. El entorno existe para esa sesión y desaparece al cerrar Visual FoxPro. El entorno cliente-servidor contiene:

  • Propiedades globales que actúan como prototipos para las nuevas conexiones.
  • Valores de error para los errores que ocurren fuera de una conexión especificada.

Puede utilizar un controlador 0, el controlador de entorno, para hacer referencia a la configuración de propiedades globales. La función SQLSETPROP( ) sirve para controlar la configuración predeterminada de las propiedades y el entorno de conexión en las conexiones individuales. Los métodos empleados para introducir valores SQLSETPROP( ) son coherentes con el entorno y las conexiones individuales:

  • Las propiedades especificadas con uno de los dos valores pueden emplear un valor lógico (.F. o .T.) para eExpression.
  • Los nombres de propiedad se pueden abreviar hasta la forma más breve que no dé lugar a ambigüedades. Por ejemplo, puede utilizar "Asynchronous", "Asynch" o "A" para especificar la propiedad Asynchronous. En los nombres de propiedades no se distingue entre mayúsculas y minúsculas.

Cuando se inicia una conexión, ésta hereda valores predeterminados para las propiedades de la conexión. Puede usar SQLSETPROP( ) para modificar estos valores.

Establecer propiedades de conexión

Para ver la configuración actual de las propiedades de una conexión, utilice SQLGETPROP( ) con el controlador de conexión adecuado. La siguiente tabla indica las propiedades de conexión a las que puede tener acceso con SQLGETPROP( ).

Propiedades de conexión de Visual FoxPro

Para Use esta propiedad Objetivo
Mostrar la información utilizada para crear la conexión activa ConnectString La cadena de conexión de inicio de sesión.
  DataSource El nombre del origen de datos, según lo ha definido ODBC.
  Password La contraseña de conexión.
  UserID La identificación del usuario.
Trabajar con conexiones compartidas ConnectBusy Verdadero (.T.) si una conexión compartida está ocupada; falso si no lo está (.F.).
Controlar la apariencia de la interfaz DispLogin Controla cuándo se muestra el cuadro de diálogo Inicio de sesión de ODBC.
  DispWarnings Controla si se muestran o no los mensajes de error menos graves.
Controlar los intervalos de tiempo ConnectTimeout Especifica el tiempo (en segundos) que hay que esperar antes de devolver un error de fin de tiempo de espera para la conexión.
  IdleTimeout Especifica el intervalo de tiempo de espera inactivo (en segundos). Las conexiones activas pertinentes se desactivan tras el intervalo de tiempo especificado.1
  WaitTime Controla la cantidad de tiempo en milisegundos que transcurre antes de que Visual FoxPro compruebe si la instrucción SQL ha terminado de ejecutarse.
  QueryTimeout Controla el tiempo (en segundos) que hay que esperar antes de devolver un error general de fin de tiempo de espera.
Administrar transacciones Transactions Determina la forma en que la conexión administra las transacciones en la tabla remota.
Controlar la búsqueda de conjuntos de resultados en los cursores de presentación Asynchronous Especifica si los conjuntos de resultados se devuelven de forma síncrona (valor predeterminado) o asíncrona.
  BatchMode Especifica si SQLEXEC( ) devuelve todos los conjuntos de resultados a la vez (valor predeterminado), o individualmente con SQLMORERESULTS( ).
  PacketSize Especifica el tamaño del paquete de red utilizado por la conexión.
Mostrar controladores ODBC internos ODBChdbc2 El controlador interno de conexión ODBC que pueden utilizar los archivos de bibliotecas externas (archivos .fll) para llamar a las funciones de la API de ODBC.
  ODBChstmt2 El controlador interno de instrucciones ODBC que pueden utilizar los archivos de bibliotecas externas (archivos .fll) para llamar a las funciones de la API de ODBC.

1. En el modo de transacción manual, la conexión no se desactiva.

2. Si una conexión se desactiva, los valores ODBChdbc y ODBChstmt dejan de ser válidos. No libere estos valores en una biblioteca de usuario.

Para obtener más información acerca de las propiedades de las conexiones y su configuración predeterminada, vea SQLSETPROP( ).

Controlar valores de propiedades de entorno

Los valores que establezca en el entorno Visual FoxPro con el controlador 0 se usarán como prototipos o valores predeterminados para todas las conexiones o los adjuntos posteriores.

Para ver el valor actual de las propiedades de entorno

El ejemplo siguiente muestra en la pantalla el valor de la propiedad WaitTime del entorno actual:

? SQLGETPROP(0, "WaitTime")

Si establece la propiedad DispWarnings en el valor verdadero (.T.), Visual FoxPro mostrará los errores de entorno a partir de ese punto y también establecerá DispWarnings en verdadero (.T.) para las conexiones recién creadas.

Aunque los valores que establece para el controlador 0 se utilizan como valores prototipo para cada conexión, también puede establecer propiedades personalizadas para una conexión individual si ejecuta SQLSETPROP( ) para ese controlador de conexión. Las excepciones son las propiedades ConnectTimeout, PacketSize y DispLogin, cuya configuración hereda la conexión en el momento de la conexión. Si cambia el valor de las propiedades ConnectTimeout, PacketSize y DispLogin, el nuevo valor no se utilizará hasta que establezca una nueva conexión.

Controlar objetos de conexión y de vista

Puede controlar las conexiones y vistas estableciendo propiedades en el objeto de conexión o de vista. Las propiedades que controlan bases de datos, tablas, campos de tablas, definiciones de vistas, campos de vistas, conexiones con nombre, conexiones activas o cursores de vista activos se llaman propiedades de motor. Puede mostrar o establecer propiedades de motor con una de las siguientes funciones de Visual FoxPro:

Para mostrar propiedades de motor use Para establecer propiedades de motor use
CURSORGETPROP( ) CURSORSETPROP( )
DBGETPROP( ) DBSETPROP( )
SQLGETPROP( ) SQLSETPROP( )

La función que use depende de si desea establecer propiedades en el objeto 0 (conexión 0 y cursor 0), la definición de objeto de una base de datos (conexión con nombre o definición de vista) o el objeto activo (conexión activa o cursor de vista activo). La tabla siguiente muestra objetos y las funciones que se usan para establecer propiedades de cada objeto:

Para establecer propiedades para Conexión Vista
Objeto 0 SQLSETPROP( ) CURSORSETPROP( )
Definición de objeto de una base de datos DBSETPROP( ) DBSETPROP( )
Objeto activo SQLSETPROP( ) CURSORSETPROP( )

Propiedades de motor

La tabla siguiente presenta propiedades de motor ordenadas alfabéticamente con los objetos que usan cada propiedad.

Propiedad de motor Aplicable a
Asynchronous Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLSETPROP( ).
BatchMode Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLSETPROP( ).
BatchUpdateCount1 Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORSETPROP( ).
Almacenamiento en búfer Cursores de vista activos: vea CURSORSETPROP( ).
Título Campos de tablas, campos de definiciones de vista: vea DBSETPROP( ).
Comentarios Bases de datos, tablas, campos de tablas, definiciones de vista, campos de definiciones de vista, definiciones de conexión: vea DBSETPROP( ).
CompareMemo Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORSETPROP( ).
ConnectBusy Conexiones activas: vea SQLGETPROP( ).
ConnectHandle Cursores de vista activos: vea CURSORGETPROP( ).
ConnectName1 Definiciones de vista: vea DBSETPROP( ).
Conexiones activas: vea SQLGETPROP( ).
Cursores de vista activos: vea CURSORGETPROP( ).
ConnectString Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLGETPROP( ).
ConnectTimeout Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLSETPROP( ).
Base de datos Cursores de vista activos: vea CURSORGETPROP( ).
DataSource Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLGETPROP( ).
DataType Campos en definiciones de vista: vea DBSETPROP( ).
DefaultValue Campos de tablas, campos de definiciones de vista: vea DBSETPROP( ).
DeleteTrigger Tablas: vea DBGETPROP( ).
DispLogin Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLSETPROP( ).
DispWarnings Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLSETPROP( ).
FetchAsNeeded Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORGETPROP( ).
FetchMemo1 Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORGETPROP( ).
FetchSize1 Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORSETPROP( ).
IdleTimeout Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLSETPROP( ).
InsertTrigger Tablas: vea DBGETPROP( ).
KeyField Campos en definiciones de vista: vea DBSETPROP( ).
KeyFieldList2 Cursores de vista activos: vea CURSORSETPROP( ).
MaxRecords1 Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORSETPROP( ).
ODBCHdbc Conexiones activas: vea SQLGETPROP( ).
ODBCHstmt Conexiones activas: vea SQLGETPROP( ).
Offline Definiciones de vista: vea DBGETPROP( ).
PacketSize Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLSETPROP( ).
ParameterList Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORSETPROP( ).
Password Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLGETPROP( ).
Path Tablas: vea DBGETPROP( ).
Prepared Definiciones de vista: vea DBSETPROP( ).
PrimaryKey Tablas: vea DBGETPROP( ).
QueryTimeout Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLSETPROP( ).
RuleExpression Tablas, campos de tablas, definiciones de vista, campos de definiciones de vista: vea DBSETPROP( ).
RuleText Tablas, campos de tablas, definiciones de vista, campos de definiciones de vista: vea DBSETPROP( ).
SendUpdates2 Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORSETPROP( ).
ShareConnection Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORGETPROP( ).
SourceName Cursores de vista activos: vea CURSORGETPROP( ).
SourceType Definiciones de vista: vea DBGETPROP( ).
Cursores de vista activos: vea CURSORGETPROP( ).
SQL Definiciones de vista: vea DBGETPROP( ).
Cursores de vista activos: vea CURSORGETPROP( ).
Tables2 Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORSETPROP( ).
Transactions Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLSETPROP( ).
Updatable Campos en definiciones de vista: vea DBSETPROP( ).
UpdatableFieldList2 Cursores de vista activos: vea CURSORSETPROP( ).
UpdateName Campos en definiciones de vista: vea DBSETPROP( ).
UpdateNameList2 Cursores de vista activos: vea CURSORSETPROP( ).
UpdateTrigger Tablas: vea DBGETPROP( ).
UpdateType Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORSETPROP( ).
UseMemoSize1 Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORGETPROP( ).
UserID Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLGETPROP( ).
Version Bases de datos: vea DBGETPROP( ).
WaitTime Definiciones de conexión: vea DBSETPROP( ).
Conexiones activas: vea SQLSETPROP( ).
WhereType Definiciones de vista: vea DBSETPROP( ).
Cursores de vista activos: vea CURSORSETPROP( ).

1. Propiedad principalmente útil para vistas remotas; el valor no tiene efecto sobre el rendimiento de vistas locales. Puede configurar esta propiedad en vistas locales si desea preestablecer la propiedad en la vista local y, a continuación, hacer un upsizing para crear una vista remota.

2. La propiedad se tiene que establecer para que se envíen actualizaciones al origen de datos remoto.

Usar transacciones con datos remotos

Puede utilizar uno de los dos métodos siguientes para ajustar automáticamente las transacciones sobre las actualizaciones, eliminaciones e inserciones de datos remotos:

  • Modo de transacción automático
  • Modo de transacción manual

El modo de transacción que seleccione determina cómo administra Visual FoxPro las transacciones en su equipo local.

Vea también

Ejecutar extensiones ODBC de SQL | Usar el modo de transacción automático | Usar la tecnología de paso a través de SQL | Implementar una aplicación cliente-servidor | Diseñar aplicaciones cliente-servidor | Upsizing de las bases de datos de Visual FoxPro | Crear vistas