Compartir a través de


Actualizar datos con SQLSetPos

Las aplicaciones pueden actualizar o eliminar cualquier fila del conjunto de filas con SQLSetPos. Llamar a SQLSetPos es una alternativa conveniente para construir y ejecutar una instrucción SQL. Permite que un controlador ODBC admita actualizaciones posicionadas incluso cuando el origen de datos no admite instrucciones SQL posicionadas. Forma parte del paradigma de lograr el acceso completo a la base de datos mediante llamadas de función.

SQLSetPos funciona en el conjunto de filas actual y solo se puede usar después de una llamada a SQLFetchScroll. La aplicación especifica el número de la fila que se va a actualizar, eliminar o insertar, y el controlador recupera los nuevos datos de esa fila de los búferes del conjunto de filas. SQLSetPos también se puede usar para designar una fila especificada como la fila actual o para actualizar una fila determinada en el conjunto de filas desde el origen de datos.

El tamaño del conjunto de filas se establece mediante una llamada a SQLSetStmtAttr con un argumento Attribute de SQL_ATTR_ROW_ARRAY_SIZE. SQLSetPos usa un nuevo tamaño de conjunto de filas, pero solo después de una llamada a SQLFetch o SQLFetchScroll. Por ejemplo, si se cambia el tamaño del conjunto de filas, se llama a SQLSetPos y, a continuación, se llama a SQLFetch o SQLFetchScroll y la llamada a SQLSetPos usa el tamaño del conjunto de filas antiguo mientras SQLFetch o SQLFetchScroll usa el nuevo tamaño del conjunto de filas.

La primera fila del conjunto de filas es el número de fila 1. El argumento RowNumber de SQLSetPos debe identificar una fila en el conjunto de filas; es decir, su valor debe estar en el intervalo entre 1 y el número de filas que se recuperaron más recientemente (que pueden ser menores que el tamaño del conjunto de filas). Si RowNumber es 0, la operación se aplica a cada fila del conjunto de filas.

Dado que la mayoría de la interacción con las bases de datos relacionales se realiza a través de SQL, SQLSetPos no es ampliamente compatible. Sin embargo, un controlador puede emularlo fácilmente mediante la construcción y ejecución de una instrucción UPDATE o DELETE .

Para determinar qué operaciones admite SQLSetPos , una aplicación llama a SQLGetInfo con el SQL_DYNAMIC_CURSOR_ATTRIBUTES1, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1, SQL_KEYSET_CURSOR_ATTRIBUTES1 o SQL_STATIC_CURSOR_ATTRIBUTES1 opción de información (en función del tipo del cursor).

Esta sección contiene los temas siguientes.