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 24-04-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Me alegro por ello, _CALI.
Responder Con Cita
  #2  
Antiguo 24-04-2011
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
una ultima acotacion

disculpa el abuso jeje.
una ves establecida la conexion del cliente data set que esta el formulario con el proveedor que esta en el modulo de datos...

el cliente data set le pide al proveedor que actualize la tabla con applyupdates(0)

el proveedor ejecuta la instruccion INSERT, UPDATE O DELETE, dependiendo del estado como se encontraba el cliente data set cierto??

cuando creo un registro nuevo todo bien
pero cuando modifico un registro me sale que otro usuario cambio el valor del registro bla bla bla, acuerdate que mi formulario se abre varias veces a la vez, ese problema lo solucionaba ejecutando un TADOCommand para mediante instruccion SQL actualize el valor del registro directamente.

mi pregunta es cual es evento del proveedor (si existe) para poder modificar la instruccion UPDATE o que me recomiendas en tal caso

Muchas Gracias denuevo!!
Responder Con Cita
  #3  
Antiguo 25-04-2011
_CALI _CALI is offline
Miembro
 
Registrado: mar 2008
Posts: 99
Poder: 17
_CALI Va por buen camino
Smile una posible solucion

una posible solucion fue personalizar el metodo de Update del proveedor

Código Delphi [-]
 
procedure TDM.dspVendedoresBeforeUpdateRecord(Sender: TObject;
  SourceDS: TDataSet; DeltaDS: TCustomClientDataSet; UpdateKind: TUpdateKind;
  var Applied: Boolean);
begin
if UpdateKind=ukModify then
  begin
    asignar(cmdVendedores, DeltaDS);
    cmdVendedores.Execute;
    Applied:=true;
  end;
 
end;

el procedimiento q se ancarga de pasar los datos del clientedataset al commando :

Código Delphi [-]
 
procedure asignar(comando: TADOCommand; cDataSet: TCustomClientDataSet);
var i: integer;
  begin
   for I := 0 to comando.Parameters.Count - 1 do
           begin
           if  VarIsNull(cDataSet.FieldByName(comando.Parameters.Items[i].Name).Value) then
               comando.Parameters.Items[i].Value := cDataSet.FieldByName(comando.Parameters.Items[i].Name).OldValue
           else
               comando.Parameters.Items[i].Value := cDataSet.FieldByName(comando.Parameters.Items[i].Name).Value;

           end;
  end;


funciona bien pero aun tengo dudas, no se supone q en un campo del cliente data set asi no ingrese un dato es se asume como cadena vacia ''?, me causaba un error al momento de ejecurar el command diciendome q el valor era nulo.

alguna otra recomnedacion gracias de antemano
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
Conectar varias Bases de Datos con Server DataSnap gcaffe Providers 5 22-05-2016 01:55:09
Querys en DataSnap juank1971 Conexión con bases de datos 10 15-07-2014 13:04:55
DataSnap o LAMP Chris Debates 70 24-07-2012 18:42:48
Webinar: Estrategias y herramientas para el desarrollo de aplicaciones DataSnap Andreano Noticias 5 10-12-2010 08:05:30
Midas y DataSnap Toni Providers 1 09-07-2003 18:30:47


La franja horaria es GMT +2. Ahora son las 17:04:28.


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