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 20-08-2007
Ledian_Fdez Ledian_Fdez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Ciudad Habana, Cuba
Posts: 242
Poder: 18
Ledian_Fdez Va por buen camino
Arrow Algo mas sobre ADOTable

Hola amigos:

Pues hoy estoy acá con la siguiente inquietud.

Antes que nada decirle quiero que mi aplicación esta en Delphi7, la Base de Datos en Access y me conecto a través de ADO.

Supongamos que tenemos una ADOTable1 con una serie de controles y entre ellos el Button1. Mi pregunta es: ¿Cómo podré deshabilitar el Button1 mientras que el ADOTable1 este en edición o insertándole un nuevo registro, en fin que se estén manipulando sus datos, para después ser guardado?

El problema es que el Button1 me llama a un formulario donde me es necesario que el usuario no intente llegar a el sin antes tener guardado todos los datos del ADOTable1.

Espero que me hayan entendido.

Salu2
Ledian
Responder Con Cita
  #2  
Antiguo 20-08-2007
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
Aunque no es exactamente lo que preguntas, podrías comenzar el código de ese botón preguntando por el estado del dataset:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not (ADOTable1.State in dsEditModes) then
  begin
  {
    Aquí tu código
  }
  end;
end;

De esta manera te aseguras de no abrir esa ventana si el dataset está en edición o inserción.

Más allá de eso, si usas un ActionList para las acciones de tus botones, puedes usar su evento OnUpdate para ese tipo de cosas:

Código Delphi [-]
Action1.Enabled := not (ADOTAble1.State in dsEditModes);

// Saludos
Responder Con Cita
  #3  
Antiguo 20-08-2007
Ledian_Fdez Ledian_Fdez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Ciudad Habana, Cuba
Posts: 242
Poder: 18
Ledian_Fdez Va por buen camino
Thumbs down Msg Error !!!

Roman este codigo:


Código Delphi [-]
procedure TModelo1Form.RxSpeedButton8Click(Sender: TObject);
begin
 if not (DM.TblModelo1.State in dsEditModes) then
   begin
    Try
     Application.CreateForm(TAnalisisForm, AnalisisForm);
     AnalisisForm.ShowModal;
    Finally
     AnalisisForm.Free;
     AnalisisForm := nil;
    End
   end
 else ShowMessage('Debes guardar los datos primero');
end;


me genera el sgte error:
[Error] Modelo1.pas(127): Undeclared identifier: 'dsEditModes'


salu2
Ledian
Responder Con Cita
  #4  
Antiguo 20-08-2007
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
¿Y crees que poniéndome un signo de desaprobación es la mejor manera de pedir ayuda?

// Saludos
Responder Con Cita
  #5  
Antiguo 20-08-2007
Ledian_Fdez Ledian_Fdez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Ciudad Habana, Cuba
Posts: 242
Poder: 18
Ledian_Fdez Va por buen camino
Lo siento

Lo siento. No entiendo lo que me quieres desir.

Salu2
Ledian
Responder Con Cita
  #6  
Antiguo 20-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Vamos Roman, que se refiere al error, no te lo tomes personal.
Prueba asi:
Código Delphi [-]
procedure TModelo1Form.RxSpeedButton8Click(Sender: TObject);
begin
 If not (DM.TblModelo1.State = dsEdit) or (DM.TblModelo1.State = dsInsert) then
    begin
    Try
     Application.CreateForm(TAnalisisForm, AnalisisForm);
     AnalisisForm.ShowModal;
    Finally
     AnalisisForm.Free;
     AnalisisForm := nil;
    End
   end
 else ShowMessage('Debes guardar los datos primero');
end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 20-08-2007
Ledian_Fdez Ledian_Fdez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Ciudad Habana, Cuba
Posts: 242
Poder: 18
Ledian_Fdez Va por buen camino
Wink Aun nada !!!

Roman, Caral tiene razon, no me mal interprete. Me referia al ERROR.


Bueno volviendo al tema señores el error persiste. Tendré que agregar alguna use, o tendré alga mal escrito, por favor les agradesería que me ayudaran con esto.

Salu2
Ledian
Responder Con Cita
  #8  
Antiguo 20-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Perdona pero no te puede salir el mismo error.
Cual error te da?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 20-08-2007
Ledian_Fdez Ledian_Fdez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Ciudad Habana, Cuba
Posts: 242
Poder: 18
Ledian_Fdez Va por buen camino
mmm !!

[Error] Modelo1.pas(115): Undeclared identifier: 'dsIsert'
[Error] Modelo1.pas(115): Undeclared identifier: 'dsEdit'
Responder Con Cita
  #10  
Antiguo 20-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Estos son los uses que tengo, quizás sea el problema, no lo se.
Código Delphi [-]
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Mask, DBCtrls, ComCtrls, DB, ADODB,
  Buttons, Grids, DBGrids;
Revisalo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 20-08-2007
Ledian_Fdez Ledian_Fdez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Ciudad Habana, Cuba
Posts: 242
Poder: 18
Ledian_Fdez Va por buen camino
ok

Así mismo, ese era el problema.
Tenía que agregar al uses DB y ya me funciona, aunque en el Insert no me funciona bien, pero busque en la ayuda y mi código me queó asi:

i
Código Delphi [-]
f (DM.TblModelo1.State = dsBrowse) then
   begin
    Try
     Application.CreateForm(TAnalisisForm, AnalisisForm);
     AnalisisForm.ShowModal;
    Finally
     AnalisisForm.Free;
     AnalisisForm := nil;
    End
   end
 else ShowMessage('Debes guardar los datos primero');

Aunque a decir verdad. En si no es lo que buscaba pero bueno, podría usarse momentáneamente de esa manera.

Caral miles de gracias por tu paciencia


Salu2
Ledian
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
algo mas sobre el DBGrid Ledian_Fdez OOP 1 17-08-2007 16:03:49
algo sobre kazaa gulder Windows 1 21-04-2006 04:42:17
Algo sobre COALESCE jwmoreira Firebird e Interbase 1 08-03-2005 20:23:20
Algo mas sobre DBGRID alcides OOP 1 15-02-2005 16:47:34
Algo sobre TIBSQLParser !!! fabito Conexión con bases de datos 3 10-07-2003 17:43:46


La franja horaria es GMT +2. Ahora son las 09:56:47.


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