![]() |
![]() |
| Paypal | 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?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#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 |
|