AsyncQuery con postgresql y dapper usando npqsql




 Estuve probando dapper orm y recientemente agregaron soporte de sincronización. Lo busqué en Google sobre eso. Es maravilloso si tiene mucho tráfico en su sitio. Lo estaba intentando con postgressql y dapper. Ahora, en conexión si paso una cadena de conexión simple, funciona bien. Pero según un par de artículos no es verdadero asincrónico si quiero usarlo, necesito una cadena de conexión asíncrona. 

 Ahora, no sé cómo usarlo con Postgresql y npgsql. Aquí hay un artículo completo para [referencia](http://www.tugberkugurlu.com/archive/asynchronous-database-calls-with-task-based-asynchronous-programming-model-tap-in-asp-net-mvc-4) en el que el autor explica cómo hacerlo con Sql Server. 

 ¿Qué debo hacer si deseo lo mismo con Postgresql? 

 Por favor, avíseme si necesita más requisitos.
El autor de este artículo está algo equivocado: en .NET 4.5, la propiedad [AsynchronousProcessing](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.asynchronousprocessing.aspx) se ignora porque ya no es necesaria. Puede comenzar a [llamar a los métodos Async](http://msdn.microsoft.com/en-us/library/hh211418.aspx) de SqlClient sin cadenas de conexión especiales. 

 Si las operaciones se ejecutarán de forma asíncrona, depende del proveedor de la base de datos. Por ejemplo, la implementación predeterminada de [DbCommand.ExecuteDbDataReaderAsync en](http://msdn.microsoft.com/en-us/library/system.data.common.dbcommand.executedbdatareaderasync.aspx) realidad se ejecuta de forma síncrona y bloquea el hilo de llamada. SqlCommand anula este método y se ejecuta de forma asíncrona. 

 Desafortunadamente, NpgsqlCommand no anula este método, por lo que solo le queda la ejecución síncrona.
Si, si que podrás.   
ASP permite la conexión con bases de datos siempre y cuando estas tengan un driver ODBC, que access tiene en el sistema por defecto, así que podrás hacer cnsultas SQL a la base de datos, y si no me equivoco también a los ficheros Excel. Lo que te recomiendo es que te pases por [http://msdn.microsoft.com](https://msdn.microsoft.com/) y busques toda la información allí pues es donde mejor te pueden informar  
En cuanto a saber más de asp tienes   
[http://www.aspin.com](http://www.aspin.com/)  
A la base de datos puedes acceder o bien sabiendo el path o mediante un DSN que puedes asignarle a la base de datos en el sistema. Este ultimo es el método más cómodo.  
Si, puedes probarlo en un ordenador local ya sea windows ME, 9X o 2000, pues todos tienen su servidor web así como el interprete de ASP en el sistema.  
Espero haberte ayudado,  
un saludo. Intente colocar sus actualizaciones e inserciones en un archivo y luego cargar el archivo. Entiendo que Postgresql optimizará la carga del contenido del archivo. Siempre me ha funcionado aunque no he usado esa cantidad. Tiene toda la pinta de ser el DNS, que estés accediendo a él de forma local y éste no lo tengas instalado correctamente. Prueba a crear un DNS de sistema y referenciar a él tu conexión.  
En caso de ser una base de datos ACCESS, la cadena de conexión a veces es un poco quisquillosa, hay que poner el nombre exacto del controlador y su versión.  
¿Funciona el test cuando creas la conexión?  
Si este no funciona, revisa tu configuración ODBC.  
Si funciona, puede que estés utilizando un connections distinto al que pretendes. no cursor, mientras lazo, o por el usuario función necesaria.sólo necesito ser creativo con for xml y trayectoria.[nota: esta solución sólo funciona en sql 2005 y posteriores. pregunta original no ha especificado la versión en uso.]create table #yourtable ([id] int, [name] char(1), [value] int) insert into #yourtable ([id],[name],[value]) values (1,'a',4) insert into #yourtable ([id],[name],[value]) values (1,'b',8) insert into #yourtable ([id],[name],[value]) values (2,'c',9) select [id], stuff(( select ', ' + [name] + ':' + cast([value] as varchar(max)) from #yourtable where (id = results.id) for xml path(''),type).value('(./text())[1]','varchar(max)') ,1,2,'') as namevalues from #yourtable results group by id drop table #yourtable Tienes que usar la función BUSCARV para que en función de un valor busques en la primera columna de tu otra tabla, e indicándole el número de columna consigas el dato deseado.

Otra opción es usar las funciones INDICE e COINCIDIR.

En Internet y Youtube hay muchos tutoriales, el propio Excel tiene también ejemplos.

Desafortunadamente con la información que proporcionas no veo como orientarte de manera más específica. el que puedas sincronizar o no tus datos de manera satisfactoria dependerá de esta aplicación, ya que la misma además de ser gratuita, es la que da pie a que cualquier pulsera de actividad o smartwatch de fitbit empareje tus datos con tu tablero de fitbit. en el caso de que tu dispositivo no admita bluetooth, entonces tienes que utilizar un dispositivo de sincronización inalámbrica para que puedas hacer la configuración de tu fitbit correctamente. y apoyando mas la aportacion de made in china... te dejo este enlace:  
  
<http://www.elguille.info>  
  
me imagino que vas a modificar base de datos verdad?  
  
en realidad no es tan dificil... te lo comento muy general  
  
- creas las tablas con access y las pones en la pc que hara la de servidor.  
- realizas tu aplicacion normal, como si fueras a trabajar local(en una sola maquina). solo ten el cuidado de manejar alias, es decir... direcciona la base de datos con alias.  
- luego instala la aplicacion en todas las pc que te van a utilizar el sistema  
- mapea la tabla que esta el servidor  
- conecta en todas las pc la unidad de red(direccionada a la unidad mapeada)  
- crea el alias en las maquinas que van a usar el sistema  
  
listo..  
  
precauciones que debes de tomar:  
- integridad referencial(si es necesaria)   
- otorgar permisos de escritura a la tabla  
- tomar en cuenta el bloque de registros y el bloqueo de tablas.  
  
si lo que quieres es comunicar 2 pc por el puerto de red(cliente-servidor) entonces lee todo lo que puedas sobre el winsock.  
  
saludos.... ![wink](/ckeditor/plugins/smiley/images/icon_wink.gif) sigue valorando las respuestas ¿Por qué no usar SSIS directamente? 

 De todos modos, si realizó un análisis del análisis al IDataReader, ya está en el camino correcto. Para optimizar SqlBulkCopy en sí mismo, debe centrar su atención en SQL Server. La clave son las operaciones mínimamente registradas. Debes leer estos artículos de MSDN: 

* [Requisitos previos para el registro mínimo en la importación masiva](http://msdn.microsoft.com/en-us/library/ms190422%28v=sql.105%29.aspx) .
* [Optimización del rendimiento de importación masiva](http://msdn.microsoft.com/en-us/library/ms190421%28v=sql.105%29.aspx) .

 Si su objetivo es un árbol B (es decir, una tabla indexada agrupada), desafortunadamente uno de los principios más importantes de la inserción masiva de rendimiento, a saber, el conjunto de filas de entrada ordenada, no puede ser declarado. Siendo tan simple como esto, ADO.Net SqlClient no tiene el equivalente de [`SSPROP_FASTLOADOPTIONS -> ORDER(Column)`](http://msdn.microsoft.com/en-us/library/ms130809.aspx) (OleDb). Como el motor no sabe que los datos ya están ordenados, agregará un operador de clasificación en el plan que no es tan malo, excepto cuando se derrama. Para evitar derrames, use un tamaño de lote pequeño (~ 10k). Vea mi punto original: todas estas son solo [opciones y clics para establecer en SSIS en](http://msdn.microsoft.com/en-us/library/ms141237.aspx) lugar de excavar a través de la especificación OleDB MSDN ... 

 Si su flujo de datos no está clasificado para comenzar o si el destino es un montón, entonces mi punto anterior es mudo. 

 Sin embargo, lograr un registro mínimo sigue siendo una necesidad para un rendimiento decente. Los ejemplos que otros han dado no funcionarán en Entity Framework hoy, porque no se pueden combinar enumeración de clientes y servidores en las entidades LINQ 2. 

 En su lugar, necesita construir una expresión OR, manualmente. 

 Ejecuto una serie de [consejos](http://blogs.msdn.com/alexj/archive/2009/03/26/index-of-tips.aspx) de [EF](http://blogs.msdn.com/alexj/archive/2009/03/26/index-of-tips.aspx) y [este consejo](http://blogs.msdn.com/alexj/archive/2009/03/26/tip-8-writing-where-in-style-queries-using-linq-to-entities.aspx) te muestra cómo construir una expresión OR. 

 Espero que esto ayude 

 Alex Si tienes problemas con conectar ACCESS con Java, puedes consultar aquí:  
<http://www.dcc.uchile.cl/~cc10a03/catedra/cap21_apu.doc>  
Estos apuntos los hice yo para un curso y yo logré conectar ACCESS con Java puro. Ahora con un applet la cosa no es distinta (de hecho es lo mismo, solo si el APPLET no lo vas a publicar en una página web, que eso es imposible de hacer).  
- Primero que todo ¿configuraste el ODBC de la Base de Datos?  
Si no es así, ve esto: <http://www.dcc.uchile.cl/~cc10a03/catedra/ane04_apu.doc>  
- ¿Te conectas bien con el driver?   
Si lo haces bien y aún tienes dudas de por qué no te funciona, yo tengo un ejemplo más facilito... Tal vez te lo puedo enviar... :-)