Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2013
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Un query que se cierra solo

Estoy usando Firebird con C++ 6. Tengo este código con dos TIBQuery:
Código:
Query->Close();
Query->SQL->Text = "INSERT INTO Cuentas (Padre, Cuenta, Defecto) 
VALUES (:Padre, :Cuenta, :Defecto)";

qTemp->Close();
qTemp->SQL->Text = "SELECT DISTINCT A.Padre, B.Cuenta, B.Defecto 
FROM ALU_TEMP A, CUE_TEMP B WHERE A.Referencia||A.Recibo = B.Referencia";
qTemp->Open();

for (; !qTemp->Eof; qTemp->Next())
{
     if (!tColegio->InTransaction)
          tColegio->StartTransaction();

     Query->Close();
     Query->ParamByName("Padre")->AsInteger   = qTemp->FieldByName("Padre")->AsInteger;
     Query->ParamByName("Cuenta")->AsString   = qTemp->FieldByName("Cuenta")->AsString;
     Query->ParamByName("Defecto")->AsInteger = qTemp->FieldByName("Defecto")->AsInteger;
     try
     {
          Query->ExecSQL();
          tColegio->Commit();
     }
     catch(...)
     {
          tColegio->Rollback();
     }
}
Hace el primer insert pero cuando debería avanzar al segundo registro de lectura me dice que que no porque el dataset está cerrado (Cannot perform this operation on a closed dataset). Si fuera cierto no debría leer ni el primer registro.

He probado, en vez de un bucle, a hacer un INSERT masivo:
Código SQL [-]
INSERT INTO Cuentas (Padre, Cuenta, Defecto) 
SELECT DISTINCT A.Padre, B.Cuenta, B.Defecto FROM ALU_TEMP A, CUE_TEMP B WHERE A.Referencia||A.Recibo = B.Referencia

y me da un error de violacion de claves (la tabla está indexada por padre y cuenta).

¿A alguien se le ocurre alguna idea?

Última edición por ecfisa fecha: 19-10-2013 a las 11:42:53. Razón: Cambiar etiqueta [code] por [sql]
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Delphi 2007 se Cierra Solo DANY Varios 3 21-03-2012 18:03:08
mostrar un registro solo de un query Patricio Varios 3 18-11-2008 21:31:27
query no Graba , se cierra juanmaster Tablas planas 9 13-12-2006 00:52:21
Me cierra Delphi totalmente al activar Query JamesBond_Mx SQL 2 12-01-2006 16:47:39
los query son dataset de solo lectura? kryna SQL 3 04-04-2005 02:22:27


La franja horaria es GMT +2. Ahora son las 14:57:55.


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