FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
too many open handles to database en firebird
Saludos amigos del club, este error me da cuando realizo una carga masiva, leo desde un archivo texto despues de alcanzar 65,000 inserciones
ma produce una excepción (too many open handles to database), uso firebird 2.5 y c#, que puedo hacer para controlar esto y seguir insertando.
__________________
ronimaxh Rep. Dominicana |
#2
|
||||
|
||||
¿Código y componentes?
|
#3
|
|||
|
|||
Código:
{ OpenFileDialog open = new OpenFileDialog(); // open.Filter = "*.txt"; if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK) { Stopwatch medir = new Stopwatch(); medir.Start(); //Stopwatch.StartNew(); DateTime tiempo1 = DateTime.Now; //leer cantidad de lineas del archivo long count = 0; string archivo = open.FileName; char[] Delimitador = { '|' }; StreamReader Lector = new StreamReader(archivo); string Linea1 = Lector.ReadLine(); List<CargarRNC> Lista = new List<CargarRNC>(); while (Linea1 != null) { CargarRNC carga2= new CargarRNC(); string[] Campos = Linea1.Split(Delimitador); carga2.Documento = Campos[0]; carga2.Cliente = Utilidades.LimpiarCadena(Campos[1]); Lista.Add(carga2); Linea1 = Lector.ReadLine(); } Lector.Close(); Lector.Dispose(); count = Lista.Count; progressBar1.Maximum = Convert.ToInt32(count); progressBar1.Minimum = 0; progressBar1.Value = 0; CargarRNC.BorrarCargaRNC(); FbConnection conn = ConectarFirebirdDB.ObtenerConexion(); FbTransaction trans = conn.BeginTransaction(); int i = 1; foreach(CargarRNC carga in Lista) { string sqltxt = "insert into TB_CARGARNC (rnc,cliente,usuarioid,fechasist)values(" + "'" + carga.Documento+ "'" + "," + "'" + carga.Cliente + "'" + "," + Convert.ToString(0) + "," + "'" + Utilidades.ObtenerFechaHoraSist() + "'" + ")"; FbCommand cmd = new FbCommand(sqltxt, conn, trans); Int32 aff = 0; try { aff = cmd.ExecuteNonQuery(); if ((i % 1000 == 0)) { trans.Commit(); trans = null; trans = conn.BeginTransaction(); count = count - 1000; cmd.Dispose(); } else if (count < 1000) { trans.Commit(); trans = null; cmd.Dispose(); trans = conn.BeginTransaction(); count = count - 1; } } catch (Exception ex) { trans.Rollback(); MessageBox.Show(ex.Message); trans = conn.BeginTransaction(); } progressBar1.Increment(+1); progressBar1.Refresh(); i++; CantRegistroTxt.Text = Convert.ToString(i); CantRegistroTxt.Refresh(); } conn.Close(); Lista.Clear(); medir.Stop(); MessageBox.Show("Preceso Terminado Satisfactoriamente, Tiempo Transcurrido: "+medir.Elapsed," Atencion", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
__________________
ronimaxh Rep. Dominicana |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
unable to open database file | barakuda | Desarrollo en Delphi para Android | 17 | 04-04-2019 09:20:25 |
Compactador para database firebird | José Luis Garcí | Firebird e Interbase | 9 | 22-04-2014 14:25:16 |
Firebird Maestro vs Database Workbench | eangeles | Firebird e Interbase | 3 | 20-11-2008 14:36:31 |
Cambiar Character Set A Una Firebird Database | ASAPLTDA | Firebird e Interbase | 0 | 17-09-2007 18:27:28 |
Win Api, handles y capturar texto de un textbox | fonx | API de Windows | 3 | 21-08-2007 11:05:57 |
|