Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Insertar registro en acces (https://www.clubdelphi.com/foros/showthread.php?t=24809)

jgmarduel 02-09-2005 17:58:10

Insertar registro en acces
 
Soy supernovato y pongo este código sin resultado ni error. Alguien me podría orientar ?? Aceptaría con gusto especificaciones para Mod y Delete.

Código Delphi [-]
procedure TForm2.BitBtn2Click(Sender: TObject);
var
  estado: Boolean;
begin
  estado := False;
  if Form2.CheckBox1.State = cbChecked then
  begin
    estado := True;
  end;
  Database1.Connected := True;
  DataSource1.Enabled := True;
  Table1.Active := True;
  Table1.Open;
  Table1.Insert;
  Table1.FieldByName('Titulo').AsString := Form2.Edit1.Text;
  Table1.FieldByName('Arancelado').AsBoolean := estado;
  Table1.Post; 
  Table1.Close;
  Table1.Active := False;
  DataSource1.Enabled := False;
  Database1.Connected := False;
end;

MasterXP 02-09-2005 18:25:16

no entiendo, cual es el problema?

jgmarduel 02-09-2005 19:00:57

no inserta el registro, ni tira ningún error.

vtdeleon 03-09-2005 00:40:00

Saludos

Puede ser que tenga la propiedad CacheUpdate en True.:-S

Trata de hacer un ApplyUpdate despues del post.

jgmarduel 03-09-2005 00:52:22

gracias y tutorial de bd
 
gracias. No he encontrado mucho en los manuales que hay por ahí. Ponen en el cielo al BDGrid pero la mayoría de mis probables aplicaciones no dejarán ver las tablas a los clientes, sino que insertarán, modificarán y borraran en forms 'colgados' del principal.

Si conocen algo por favor avisen, ya que la respuesta a mi mensaje (muy rápida y gentil por cierto) trata de una función que no está en ninguno de los que encontré.
Gracias

vtdeleon 03-09-2005 00:54:35

Saludos

Te resulto lo que te escribir?

jgmarduel 05-09-2005 19:44:13

Código Delphi [-]
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, DBCtrls, DB, DBTables;

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    DateTimePicker3: TDateTimePicker;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Table1: TTable;
    DataSource1: TDataSource;
    Database1: TDatabase;
    Edit1: TEdit;
    GroupBox2: TGroupBox;
    CheckBox1: TCheckBox;
    Edit2: TEdit;
    Label5: TLabel;
    procedure BitBtn1Click(Sender: TObject);
    procedure Hola(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure Table1AfterInsert(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.BitBtn1Click(Sender: TObject);
begin
close;
end;
procedure TForm2.Hola(Sender: TObject);
begin
Form2.DateTimePicker2.Enabled := True;
end;

procedure TForm2.BitBtn2Click(Sender: TObject);
var
  estado: Boolean;
begin
  estado := False;

  if Form2.CheckBox1.State = cbChecked then
  begin
    estado := True;
  end;

  Database1.Connected := True;
end;
No hay caso. Este es el cod actual:

Código Delphi [-]
 
  DataSource1.Enabled := True;
  Table1.Active := True;
  Table1.Open;
  Table1.Insert;
  Table1.FieldByName('Titulo').AsString := Form2.Edit1.Text;
  Table1.FieldByName('Arancelado').AsBoolean := estado;
  Table1.Post;
  Table1.ApplyUpdates;
  Table1.Close;
  Table1.Active := False;
  DataSource1.Enabled := False;
  Database1.Connected := False;
end;

procedure TForm2.Table1AfterInsert(DataSet: TDataSet);
begin
  ShowMessage ('Registro agregado');
end;
end.

vtdeleon 06-09-2005 00:12:26

Saludos

????????


Pd:Usa etiquetas [delphi][/delphi ]

jgmarduel 06-09-2005 19:54:27

no. No me resultó. Gracias igual. Estoy viendo algunas cuestiones vinculadas con el acceso.

marcoev 08-09-2005 22:11:38

Intena lo siguiente
Código Delphi [-]
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
  Database1.Connected := True;
  Table1.Open;
  Table1.Insert;
  Table1.FieldByName('Titulo').AsString := Form2.Edit1.Text;
  Table1.FieldByName('Arancelado').AsBoolean := if Form2.CheckBox1.State;
  Table1.Post; 
end;
nose para que necesitas abrir y cerrar tanto las tablas y conexiones, por cierto para BD de access te recomiendo utilizar componentes de Ado y en lugar de un componente de Database utilizar el componente de conection.

TAdoConnection
TAdoTable

por cierto para editar solo cambia el insert por Table1.Edit, y para borrar solo pon Table1.Delete, espero y te sirva de algo


La franja horaria es GMT +2. Ahora son las 17:40:52.

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