Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

416
Vistas
¿Cómo se puede establecer el valor de tiempo de espera de Npgsql?

CommandTimeout=5 para configurar el tiempo de espera, pero no está bien.

Este es mi código:

 Dim con As New NpgsqlConnection Dim cmd As New NpgsqlCommand Dim conStr As String Try Dim sql = "Select * from dat_extract_text a join dat_replace_text b on a.tm_id=b.tm_id join dat_base_text_dt c on c.tm_id=a.tm_id join dat_base_text_dt_font d on d.tm_id=c.tm_id limit 250000" conStr = "Server=192.168.1.10;Port=5434;UserId=testuser;Password=1234;Database=testdb;CommandTimeout=5;" con.ConnectionString = conStr con.Open() cmd.Connection = con cmd.CommandText = sql Dim st = DateTime.Now Dim rs = cmd.ExecuteNonQuery Dim et = DateTime.Now Dim t = (et - st).TotalSeconds Catch ex As Exception End Try

El tiempo de mi consulta es de aproximadamente 40 segundos, pero no se agota el tiempo de espera.

¿Cómo se puede establecer el valor de tiempo de espera de Npgsql?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Permítanos aclarar un poco su código.

Las conexiones y los comandos deben cerrarse y eliminarse. Usando... Terminar Usando bloques se encargan de esto por ti.

Puede pasar la cadena de conexión directamente al constructor. Asimismo, el texto del comando y la conexión se pueden pasar al constructor del comando.

Si desea cronometrar algo, use la clase Stopwatch disponible en .net.

Una instrucción Select no es una NonQuery. Devolverá un conjunto de resultados. Usar un DataTable le permitirá usar los datos.

Un Catch vacío no es de ayuda porque simplemente se traga los errores y no sabes qué salió mal.

 Private Sub OPCode() Dim sql = "Select * from dat_extract_text a join dat_replace_text b on a.tm_id=b.tm_id join dat_base_text_dt c on c.tm_id=a.tm_id join dat_base_text_dt_font d on d.tm_id=c.tm_id limit 250000" Dim dt As New DataTable Using con As New NpgsqlConnection("Server=192.168.1.10;Port=5434;UserId=testuser;Password=1234;Database=testdb;"), cmd As New NpgsqlCommand(sql, con) 'cmd.CommandTimeout = 5 con.Open() dt.Load(cmd.ExecuteReader) End Using End Sub

Pruebe el código de esta manera, sin el tiempo de espera y sin Try... Catch para ver en qué línea se produce el error y cuál es el error.

over 4 years ago · Santiago Trujillo Denunciar

0

Use Timeout en lugar de CommandTimeout. Consulte esto: https://www.npgsql.org/doc/connection-string-parameters.html

 conStr = "Server=192.168.1.10;Port=5434;UserId=testuser;Password=1234;Database=testdb;Timeout=5;"
over 4 years ago · Santiago Trujillo Denunciar

0

Nunca he usado ese proveedor en particular pero, al igual que otros proveedores de ADO.NET, el objeto de comando, es decir, la instancia de NpgsqlCommand , tiene una propiedad CommandTimeout . Presumiblemente deberías estar configurando eso.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda