Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-03-2008
Avatar de chinosoft
chinosoft chinosoft is offline
Miembro
 
Registrado: nov 2006
Posts: 28
Poder: 0
chinosoft Va por buen camino
Unhappy Update affected more than 1 record

Otra vez yo...

Les cuento:

Estoy usando un DataSource en un Formulario FrmPanelCliente y desde este llamo a un formulario en ShowModal() FrmPedido.

El cual trae los datos del DataSource del FrmPanelCliente, y los toma en DBEdits.

Todo muy lindo, pero al momento de guardar los cambios me sale un error

Código:
Update affected more than 1 record


La verdad no se que hacer, porque todos los otros campos los modifica sin problemas.

El campo es un Integer.

Desde ya

Muchas Gracias
__________________
:D chinosoft - only
Responder Con Cita
  #2  
Antiguo 26-03-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Hola, y como estas guardando los datos? con POST o una Sentencia Update SQL?.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 26-03-2008
Avatar de chinosoft
chinosoft chinosoft is offline
Miembro
 
Registrado: nov 2006
Posts: 28
Poder: 0
chinosoft Va por buen camino
Código:
// Post al Data Set del formulario padre
FrmPanelCliente->DSListado->DataSet->Post();

// Aplly al ClientDataSet que esta en un Data Module
DMDatos->CDSTrabajo->ApplyUpdates(0);

// Es una funcion que hace la transaccion
DMDatos->Grabar();
__________________
:D chinosoft - only
Responder Con Cita
  #4  
Antiguo 26-03-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
A ver, Intenta poniendo (-1), asi:

Código Delphi [-]
 // Post al Data Set del formulario padre
FrmPanelCliente->DSListado->DataSet->Post();

// Aplly al ClientDataSet que esta en un Data Module
DMDatos->CDSTrabajo->ApplyUpdates(-1);

// Es una funcion que hace la transaccion
DMDatos->Grabar();

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 26-03-2008
Avatar de chinosoft
chinosoft chinosoft is offline
Miembro
 
Registrado: nov 2006
Posts: 28
Poder: 0
chinosoft Va por buen camino
Probe con el ApllyUpdates(-1) y me da el siguiente error

Código:
Unable to find record. No key Specified
__________________
:D chinosoft - only
Responder Con Cita
  #6  
Antiguo 26-03-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Cita:
Empezado por chinosoft Ver Mensaje
Probe con el ApllyUpdates(-1) y me da el siguiente error

Código:
Unable to find record. No key Specified
Ahora que lo veo bien, no se, por qué haces post en el Dataset, luego le das applyupdates al conector y mas abajo Grabar(), a ver postea esa función.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #7  
Antiguo 26-03-2008
Avatar de chinosoft
chinosoft chinosoft is offline
Miembro
 
Registrado: nov 2006
Posts: 28
Poder: 0
chinosoft Va por buen camino
Código:
void TDMDatos::Grabar(){

	TTransactionDesc TTD;

	TTD.TransactionID = Random(10000) + 1;
	TTD.IsolationLevel = Dbxpress::xilREADCOMMITTED;

	SQLConn->StartTransaction(TTD);

	try {

		SQLConn->Commit(TTD);

	} catch(Exception&) {

		SQLConn->Rollback(TTD);
		throw;
	}

}
__________________
:D chinosoft - only
Responder Con Cita
  #8  
Antiguo 26-03-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Bueno, no le veo nada extraño, pero se me ocurre algo, cual es modo de actualizacion estas utilizando? upWhereAll, upWhereKeyOnly o upWhereChanged? te recomienfo el upWhereChanged y pones en el provider Flags en pfInkey y lo pones en true, prueba y me avisas.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #9  
Antiguo 26-03-2008
Avatar de chinosoft
chinosoft chinosoft is offline
Miembro
 
Registrado: nov 2006
Posts: 28
Poder: 0
chinosoft Va por buen camino
Encontre la solucion!

El problema estaba en la clave primaria...

... en el SQLDataSet me faltaba agregar en las
ProvidersFlags el pfInKey.

Muchas Gracias por la Ayuda!

Saludos!
__________________
:D chinosoft - only
Responder Con Cita
  #10  
Antiguo 26-03-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Bueno, no le veo nada extraño, pero se me ocurre algo, cual es modo de actualizacion estas utilizando? upWhereAll, upWhereKeyOnly o upWhereChanged? te recomienfo el upWhereChanged y pones en el provider Flags en pfInkey y lo pones en true, prueba y me avisas.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
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
Errorcon dbexpress Firebird: Update affected more than 1 Record alopete Conexión con bases de datos 8 08-01-2008 11:45:15
UPDATE con seccion llamada UPDATE sql's MyDAC karlaoax SQL 4 25-04-2007 22:10:50
"error/record delete" con update m8estrella83 SQL 2 09-08-2006 18:25:25
Update affected more than 1 record jmlifi Varios 6 10-11-2005 18:10:20
Invalid TLV record samame Varios 2 12-02-2004 16:34:15


La franja horaria es GMT +2. Ahora son las 12:03:06.


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