Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #27  
Antiguo 08-08-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola Chris,

Yo sigo sin ver del todo la necesidad de los dos constructores. Bueno, entiendo que tengas razones para hacerlo y seguramente tienes razón, pero tu argumento de los distintos dataset no me convence .

Yo también uso datasets distintos según si son para mostrar una lista de registros o si son para editar un registro. Aquí un ejemplo extraido de un caso real:

Inserción:
Código Delphi [-]
begin
    with TSolicitanteEditorForm.Create(Self) do
    begin
        SolicitudesDm.QSolicitante.Open;
        SolicitudesDm.QSolicitante.Append;

        if ShowModal = idOk then
        begin
            Self.txtRfc.Text := SolicitudesDm.QSolicitante['rfc'];
            Self.txtApellidos.Text := SolicitudesDm.QSolicitante['apellidos'];
            Self.txtNombre.Text := SolicitudesDm.QSolicitante['nombre'];
        end;
    end;
end;

Edición:

Código Delphi [-]
var
    SolicitanteId: Integer;

begin
    SolicitanteId := QSolicitantesSesion['solicitante_id'];

    SolicitudesDm.QSolicitante.Close;
    SolicitudesDm.QSolicitante.ParamByName('id').AsInteger := SolicitanteId;
    SolicitudesDm.QSolicitante.Open;

    with TSolicitanteEditorForm.Create(Self) do
    begin
        SolicitudesDm.QSolicitante.Edit;

        if ShowModal = idOk then
        begin
            QSolicitantesSesion.Refresh;
            QSolicitantesSesion.Locate('id', SolicitanteId, []);
        end;
    end;
end;

En ambos casos se usa una dataset específico (QSolicitante) para editar los datos que se pone en modo de inserción o edición según la operación, y esto lo hace quien llama, no el editor en sí.

En el evento Show del formulario de edición se hace una ligera distinción entre edición e inserción:

Código Delphi [-]
procedure TSolicitanteEditorForm.FormShow(Sender: TObject);
begin
    if dsSolicitantes.DataSet.State = dsInsert then
        Caption := 'Nuevo solicitante'
    else if dsSolicitantes.State = dsEdit then
        Caption := 'Datos del solicitante';
end;

pero el resto del formulario funciona igual tanto en uno como en otro caso. Aun suponiendo que tuviera muchas distinciones entre inserción y edición (que, insisto, no veo porqué habría de ser así) haría algo como esto:

Código Delphi [-]
procedure TSolicitanteEditorForm.FormShow(Sender: TObject);
begin
    if dsSolicitantes.DataSet.State = dsInsert then
        InicializaInserción()
    else if dsSolicitantes.State = dsEdit then
        InicializaEdicion();
end;

// Saludos
Responder Con Cita
 



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
Cual es la mejor forma de conectar con la BD GerTorresM Conexión con bases de datos 1 11-01-2010 16:51:47
Cuál es la mejor forma de conectar la base de datos a mi programa? martinzcr Varios 8 06-09-2007 16:28:41
cual es la mejor forma ? martita Varios 14 07-07-2005 19:35:55
Cual es la mejor forma de pasar datos de MSaccess a MySQL ctronx Conexión con bases de datos 7 04-08-2004 01:04:53
Cual es la mejor forma de Conectarse a una base de Datos Acces? catapulta Conexión con bases de datos 1 07-05-2003 05:04:21


La franja horaria es GMT +2. Ahora son las 15:28:21.


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