Conectarse al SQL Server desde Power Apps

Puede conectarse a SQL Server en Azure o en una base de datos local.

Nota

Las fuentes de datos SQL recién creadas ya no tienen el prefijo [dbo] como lo hacían en versiones anteriores de Power Apps.

Para obtener más información, consulte Problemas habituales y sus soluciones para Power Apps.

Generar una aplicación automáticamente

Dependiendo de qué Power Apps interfaz esté usando, haga referencia al nuevo aspecto o al aspecto clásico para crear una aplicación.

  1. Inicie sesión en Power Apps.

  2. Desde la página Inicio, seleccione la opción galería de una sola página o móviles de tres pantalla:

    • Para crear una aplicación de galería de una sola página con un diseño receptivo, elija una de las siguientes opciones:
      • Comenzar con datos > Seleccionar datos externos > De SQL.
      • Comenzar con un diseño de página > Galería conectada a datos externos > De SQL.
    • Para crear una aplicación móvil de tres pantallas, seleccione Comenzar con una plantilla de aplicación > Desde SQL.
  3. Seleccione su conexión SQL y luego seleccione una tabla. Para elegir una conexión diferente, seleccione el menú adicional ... para cambiar su conexión o crear una nueva conexión SQL.

    Nota

    Solo se muestra una conexión a la vez.

  4. Cuando haya terminado, seleccione Crear aplicaión.

Llamar a procedimientos almacenados directamente en Power Fx (versión preliminar)

Puede llamar directamente a los procedimientos almacenados de SQL Server desde Power Fx activando el interruptor de versión preliminar del procedimiento almacenado de SQL Server.

Nota

Los parámetros de salida no son compatibles.

  1. Vaya a Configuración > Próximas características > Versión preliminar.
  2. Busque procedimientos almacenados.
  3. Ajuste el control de alternancia en Activado para procedimientos almacenados de SQL Server.
  4. Guarde y vuelva a abrir la aplicación.

Captura de pantalla que muestra los procedimientos almacenados de SQL Server activados.

Cuando agrega una conexión de SQL Server a su aplicación, ahora puede agregar tablas y vistas o procedimientos almacenados. Esta característica también funciona con conexiones implícitas seguras.

Captura de pantalla que muestra listas de tablas, vistas y procedimientos almacenados disponibles para agregar a su aplicación.

Si no ve inmediatamente su procedimiento almacenado, es más rápido buscarlo.

Una vez que selecciona un procedimiento almacenado, aparece un nodo secundario y puede designar el procedimiento almacenado como Seguro de usar para galerías y tablas. Si marca esta opción, puede asignar su procedimiento almacenado como una propiedad Elementos para galerías de tablas que usará en su aplicación.

Habilite esta opción solo si:

  1. No hay efectos secundarios al llamar a este procedimiento bajo demanda, varias veces, cada vez que Power Apps actualiza el control. Cuando se usa con una propiedad Elementos de una galería o tabla, Power Apps llama al procedimiento almacenado cada vez que el sistema determina que es necesaria una actualización. No puede controlar cuándo se llama al procedimiento almacenado.
  2. La cantidad de datos que devuelve en el procedimiento almacenado es modesta. Las llamadas a la acción, como los procedimientos almacenados, no tienen un límite en la cantidad de filas recuperadas. No se paginan automáticamente en incrementos de 100 registros como las fuentes de datos tabulares, como tablas o vistas. Por lo tanto, si el procedimiento almacenado devuelve demasiados datos (muchos miles de registros), su aplicación podría ralentizarse o fallar. Por motivos de rendimiento, debería incluir menos de 2000 registros.

Importante

El esquema de los valores de retorno del procedimiento almacenado debe ser estático. Es decir, no cambia de una llamada a otra. Por ejemplo, si llama a un procedimiento almacenado y devuelve dos tablas, entonces debería siempre devolver dos tablas. Si el esquema de los resultados es dinámico entonces no debe usarlo con Power Apps. Por ejemplo, si llama al procedimiento almacenado y a veces devuelve una tabla y a veces devuelve dos tablas, entonces no funcionará correctamente en Power Apps. Power Apps requiere un esquema estático para esta llamada.

Ejemplo

Cuando agrega un procedimiento almacenado, es posible que vea más de un origen de datos en su proyecto.

Captura de pantalla que muestra orígenes de datos SQL.

Para utilizar un procedimiento almacenado en Power Apps, primero anteponga al nombre del procedimiento almacenado el nombre del conector asociado a él y el nombre del procedimiento almacenado. 'Paruntimedb.dbonewlibrarybook' en el ejemplo ilustra este patrón. Tenga en cuenta también que cuando Power Apps incorpora el procedimiento almacenado, concatena el nombre completo. Entonces, 'dbo.newlibrarybook' se convierte en 'dbonewlibrarybook'.

Recuerde convertir los valores adecuadamente a medida que los pasa a su procedimiento almacenado según sea necesario, ya que está leyendo un valor de texto en Power Apps. Por ejemplo, si está actualizando un número entero en SQL, debe convertir el texto en el campo usando 'Value()'.

Llamar directamente a procedimientos almacenados.

Puede tener acceso a un procedimiento almacenado para la propiedad Elementos de una galería después de declararla segura para la interfaz de usuario. Haga referencia al nombre origen de datos y al nombre del procedimiento almacenado seguido de 'ResultSets'. Puede obtener acceso a varios resultados haciendo referencia al conjunto de tablas devueltas, como la Tabla 1, la Tabla 2, etc.

Por ejemplo, su acceso a un procedimiento almacenado desde un origen de datos llamado 'Paruntimedb' con un procedimiento almacenado llamado 'dbo.spo_show_all_library_books()' se verá así.

Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1

Esto llena la galería con registros. Sin embargo, los procedimientos almacenados son una adición de comportamientos de acción al modelo tabular. Refresh() solo funciona con fuentes de datos tabulares y no se puede utilizar con procedimientos almacenados. Luego, deberá actualizar la galería cuando se cree, actualice o elimine un registro. Cuando utiliza una función Submit() en un formulario para una fuente de datos tabular, esta llama efectivamente a Refresh() de forma encubierta y actualiza la galería.

Para sortear esta limitación, utilice una variable en la propiedad OnVisible de la pantalla y establezca el procedimiento almacenado en la variable.

Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);

Y, a continuación, establezca la propiedad 'Elementos' de la galería con el nombre de la variable.

SP_Books

A continuación, después de crear, actualizar o eliminar un registro con una llamada al procedimiento almacenado, vuelva a establecer la variable. Esto actualiza la galería.

Paruntimedb.dbonewlibrarybook({   
  book_name: DataCardValue3_2.Text, 
  author: DataCardValue1_2.Text,
    ...
});
Set(SP_Books, Paruntimedb.dbospshowalllibrarybooks().ResultSets.Table1);

Problemas conocidos

Los orígenes de datos SQL ya no agregan un prefijo [dbo] al nombre origen de datos

El prefijo [dbo] no tiene ningún propósito práctico en Power Apps, ya que los nombres de los orígenes de datos se desambiguan automáticamente. Las fuentes de datos existentes no se ven afectadas por este cambios, pero las fuentes de datos SQL recién agregadas no incluyen el prefijo.

Si necesita actualizar una gran cantidad de fórmulas en una de sus aplicaciones, la Utilidad de empaquetado y desempaquetado de archivos de origen de Power Apps se puede utilizar para realizar una búsqueda y sustitución global.

Nota

A partir de la versión 3.21054, actualizaremos automáticamente las referencias de nombres heredados rotas al nuevo nombre origen de datos después de leer el origen de datos.

Pasos siguientes

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).