Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Providers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-08-2015
Avatar de GerTorresM
GerTorresM GerTorresM is offline
Miembro
 
Registrado: nov 2005
Ubicación: Tunja - Boyacá
Posts: 210
Poder: 19
GerTorresM Va por buen camino
Actualizar Datos en DBGrid desde TClientDaset

Hola a tod@s

La situación que se me presenta en la tarde de hoy es la siguiente

Los Componentes utilizados son los siguientes:

- TADOQuery
- TProvider
- TClientDataset

y la funcion con la que los trabajo es la siguiente

Código Delphi [-]
function crearClientDataset(pName : string;  pParent : Tcomponent ; pSql : String) : TClientDataSet;
var qConsulta_temporal: TADOQuery;
    dsProvedir_temporal : TDataSetProvider;
    cds_temporal : TClientDataSet;
begin
  Result:= nil;
  qConsulta_temporal:= nil;
  dsProvedir_temporal:= nil;
  try
    qConsulta_temporal:= TADOQuery.Create(nil);
    qConsulta_temporal.ConnectionString:= DMBDSistema.getConexion.ConnectionString;
    qConsulta_temporal.SQL.Text:= pSql;
    qConsulta_temporal.Open;

    dsProvedir_temporal:= TDataSetProvider.Create(pParent);
    dsProvedir_temporal.DataSet:= qConsulta_temporal;
    dsProvedir_temporal.Name:= 'DSP_' + pName ;
    dsProvedir_temporal.ResolveToDataSet:= False;
    dsProvedir_temporal.UpdateMode:=  upWhereKeyOnly;

    cds_temporal := TClientDataset.Create(pParent);
    cds_temporal.ProviderName:= dsProvedir_temporal.Name;
    cds_temporal.Name:= pName;
    cds_temporal.PacketRecords:= -1;
    Result:= cds_temporal;
  except
  end;
end;


En orden de ideas pretendo mostrar en un DBGrid que se alimenta desde un TCLientDataset, con un Provider, que se asocia con el TAdoQuery los datos propios de la consulta, asocio las propiedades básicas de los componentes y cuando se ejecuta muestra efectivamente los datos en la grilla.

en el formulario queda así

Código Delphi [-]
  self.cds_Usuario:= crearClientDataset('cds_Usuario', Self, 'Select * from ' + const_Tabla_usuario);
  self.cds_Usuario.Close;
  Self.cds_Usuario.OnCalcFields:= CalcularCampo;
  Self.cds_Usuario.Open;
  self.dsUsuario:= TDataSource.Create(self);
  Self.dsUsuario.DataSet:= Self.cds_Usuario;
  Self.dbgrdDBGDatos.DataSource:= Self.dsUsuario;

El fomulario es utilizado para que sirva de base para trabajar con otros formularios que a su vez ejecutan algun tipo de procedimiento tal como la inserción de registros, para esto utilizo una serie de instrucciones SQL que manejo como funciones ej.

Código Delphi [-]

function AdicionarRegistro(NombreTabla, ListaCampo, ValorCampo: string; pCondicional : String = '') : Boolean;
var qConsulta_temporal: TADOQuery;
    condicional_local : string;
begin
  Result:= False;
  if pCondicional <> '' then
    condicional_local :=  ' where ' + pCondicional;

  qConsulta_temporal:= TADOQuery.Create(nil);
  qConsulta_temporal.ConnectionString:= DMBDSistema.getConexion.ConnectionString;
  qConsulta_temporal.sql.text:= ' Insert Into ' + NombreTabla + ' (' + ListaCampo + ')' +
    ' Values (' + ValorCampo + ')' + condicional_local;
  try
    qConsulta_temporal.ExecSQL;
    Result:= True
  finally
    TADOConnection(qConsulta_temporal).Connected:= False;
    qConsulta_temporal.Free;
  end;
end;

Bien en orden de ideas cuando cierro la ventana con la que ingrese la información y ejecuto el ApplyUpdate del TclientDataset, no veo ningún tipo de actualización, es decir no aparecen los nuevos registros ni tampoco los borrados


Que hacer, Agradezco de antemano su tiempo



gertorresm
Colombia
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
Actualizar datos dbgrid darkerviti Conexión con bases de datos 12 28-12-2017 01:47:11
actualizar base de datos desde dbgrid edgar_prospero Varios 36 31-08-2012 03:27:34
Ayuda : actualizar un dbgrid desde otro formulario! Sebita* OOP 4 22-11-2010 00:25:53
Actualizar datos de un StringGrid desde DB BlackDaemon SQL 37 12-04-2007 08:38:32
Actualizar tabla buscando desde un dbgrid judit25 Conexión con bases de datos 7 19-05-2006 17:08:57


La franja horaria es GMT +2. Ahora son las 01:25:40.


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