Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-10-2015
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 30-10-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Código y componentes?
Responder Con Cita
  #3  
Antiguo 30-10-2015
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
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);

            }
        }

    }
sólo utilizo el Proveedor de .NET
__________________
ronimaxh
Rep. Dominicana
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 12:43:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi