Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Problema con .Post (https://www.clubdelphi.com/foros/showthread.php?t=60456)

Pacoflaco 02-10-2008 21:29:08

Problema con .Post
 
Código:

tblequipos.Edit;
tblequipos.InsertRecord([txtnombre.text]);
tblequipos.Post;

Y me da el error:

Dataset not in edit mode....

Saludos

BlueSteel 02-10-2008 21:58:18

Cita:

Empezado por Pacoflaco (Mensaje 317796)
Código:

tblequipos.Edit;
tblequipos.InsertRecord([txtnombre.text]);
tblequipos.Post;

Y me da el error:

Dataset not in edit mode....

Saludos

Hola

Creo que no eres muy específico para realizar tus consultas

por si acaso le apunto, quieres insertar un registro o actualizar...

si quieres insertar, debes realizar un Insert y no un Edit....



Con que tabla estas trabajando ??? y que componente ???

Salu2:p:D

PD: Trata de explicar más, no se cobra por palabra

coso 02-10-2008 22:05:01

Hola, si usas BDE, puedes insertar de dos maneras.. o bien usando

Código Delphi [-]
tabla.insert
...
...
tabla.post

o bien usando directamente
Código Delphi [-]
tabla.insertrecord([..])

sin el post, ya que el insertrecord pone el modo edicion/inserción y postea automaticamente. Saludos.

Pacoflaco 02-10-2008 22:08:23

Cita:

Empezado por coso (Mensaje 317812)
Hola, si usas BDE, puedes insertar de dos maneras.. o bien usando

Código Delphi [-]tabla.insert
...
...
tabla.post


o bien usando directamente
Código Delphi [-]tabla.insertrecord([..])


sin el post, ya que el insertrecord pone el modo edicion/inserción y postea automaticamente. Saludos.

Listo, justo eso necesitaba.

Saludos y Gracias a los dos.

RebeccaGL 16-10-2008 16:38:33

Te recomiendo que uses Table1.Append
Pone el registro al final.

Código Delphi [-]
 
if not (Table1.IsEmpty) then
  Table1.Append
 
Table1.Edit
Table1.FieldByName('Dato').AsFloat := 0.00;
Table1.Post
 
O tambien
 
if not (Table1.IsEmpty) then
  Table1.InsertRecord([Datos])
else
begin
  Table1.Edit  
  Table1.FieldByName('Dato').AsFloat := 0.00;
  Table1.Post
end;

MasterXP 16-10-2008 17:52:13

Te recomendaria lo mismo que dice Connor, porque el insert te crea un nuevo registro al principio, mientras que el apend lo pone al final.

Lepe 08-11-2008 13:57:05

Edito: Perdón, hace 3 semanas que nadie escribe... ejem, esto del spam es la leche :D ¿verdad moderadores? :(

El problema con Append, es que primero ha de moverse al final de la tabla para insertar el registro, y eso puede demorar mucho si tienes 1.000.000 de registros.

Otra alternativa es usar siempre "Insert" (que inserta el registro en el lugar donde se encuentre el dataset en ese momento). Después puedes usar la propiedad TableIndex o TableIndexName del objeto TTable para especificar el índice que ha de usarse para mostrar los datos. Por ejemplo, en la tabla creas un índice mantenido que se llame idxDatoAsc (usa el database Desktop), que obviamente estará definido como índice el campo "Dato" y además en orden Ascendente. Ahora ya en delphi, rellena la propiedad TableIndexName con "idxDatoAsc" (que te vendrá en la lista desplegable).

De esta forma ya no importa donde está el registro físicamente, las inserciones serán muy rápidas y además, para visualizar los registros en con un DBNavigator o con un grid, se usará el índice que hayas puesto en TableIndexName.

Saludos


La franja horaria es GMT +2. Ahora son las 16:24: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