Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Guardar variariable reeemplazando en el mismo registro

Gente por favor, ya no se que hacer realmente, siento que me estoy ahogando en un vaso de agua, lo siguiente es posible, se me ocurrio hacer una tablita que tiene un campo contador, que es una varable de tipo integer que ahi voy a ir guardando el ultimo numero de factura. Uso paradox. O sea le doy el valor de uno inicialmente y lo que quiero hacer es extraer ese uno y mostrsarlo en un caption , hasta ahi bien y una vez que posteo la factura lo que quiero hacer es aumentarle 1 y guardarlo asi me queda listo para la siguiente factura. quiero guardarlo en el registro reemplazando siempre el registro.
o sea que sea asi

Código:
contador
1
despues

Código:
contador
2
y asi...siucesivamente.


Código:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin

table1.edit;
table1.Last;
Label1.Caption:=inttostr(table1contador.Value);

end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
num:=Table1['contador'];
Table1['contador']:=num+1;
Table1.Post;
end;

end.
Al hacer click en el priemr boton me muestra el regsitro de mi tabla pero dsp al guardar la factura me da error me dice sataset not in insert or edit mode, y realmente no se porque.

desde ya muchas gracias..
Responder Con Cita
  #2  
Antiguo 09-11-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.560
Poder: 25
egostar Va camino a la fama
Hola petolansa

Yo use este código para incrementar un folio tal como lo estás haciendo tú.

Código Delphi [-]
Procedure TLector.SumaFolio;
var
  Folio: Integer;
  LineaSQL: String;
Begin
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select folio from folios');
  Query1.Open;
  Folio := Query1.Fields[0].AsInteger;
  lineaSQL := 'SET FOLIO = '+InttoStr(Folio);
  Query1.close;
  Query1.sql.clear;
  Query1.sql.add('UPDATE FOLIOS');
  Query1.sql.add(lineaSQL);
  Query1.execsql;
  Query1.Close;
End;

Espero te sirva.

Salud OS
Responder Con Cita
  #3  
Antiguo 09-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Gracias!, y para guardarlo a este procedimiento sumandole 1, como se haria en sql??

Gracias. Saludo
Responder Con Cita
  #4  
Antiguo 09-11-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.560
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Petolansa Ver Mensaje
Gracias!, y para guardarlo a este procedimiento sumandole 1, como se haria en sql??

Gracias. Saludo
, Se me fue una linea porque hacia otras cosas que no tenian caso que las pusiera

Código Delphi [-]
  Folio := Query1.Fields[0].AsInteger;
  Folio := Folio + 1;
  lineaSQL := 'SET FOLIO = '+InttoStr(Folio);

Mea culpa, perdon.

Salud OS
Responder Con Cita
  #5  
Antiguo 09-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Disculpa mi ignorancia egostar, pero nunca use sql, como haria para poner este query, osea agregue un query, le di la dire de la bd, hasta ahi vamos, el tema es que yo quiero que en un formulario tengo un boton en el que quiero buscar el campo y plasmarlo en un caption y en otro boton guardar y ahi sumarle 1. tendria que dividir el codigo que me pasaste en dos partes?
O como se hace creo ese codigo como un procedimiento y lo llamo una vez?

Disculpas

Gracias
Responder Con Cita
  #6  
Antiguo 09-11-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.560
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Petolansa Ver Mensaje
Disculpa mi ignorancia egostar, pero nunca use sql, como haria para poner este query, osea agregue un query, le di la dire de la bd, hasta ahi vamos, el tema es que yo quiero que en un formulario tengo un boton en el que quiero buscar el campo y plasmarlo en un caption y en otro boton guardar y ahi sumarle 1. tendria que dividir el codigo que me pasaste en dos partes?
O como se hace creo ese codigo como un procedimiento y lo llamo una vez?

Disculpas

Gracias
Ok, si en ese caso si debes separar las instrucciones

Código Delphi [-]
Procedure TForm1.Button1Click(Sender: TObject);
Begin
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select folio from TUTABLA');
  Query1.Open;
  Folio := Query1.Fields[0].AsInteger;
  Query1.Close;
  Folio := Folio + 1;
  Label1.Caption := InttoStr(Folio);
end;

Procedure TForm1.Button2Click(Sender: TObject);
begin
  Query1.Close;
  Query1.sql.clear;
  Query1.sql.add('UPDATE TUTABLA');
  Query1.sql.add('SET FOLIO = '+InttoStr(Folio));
  Query1.ExecSQL;
End;

Folio debe ser una variable general, ya no debe estar dentro de ningún procedimiento.

Salud OS
Responder Con Cita
  #7  
Antiguo 10-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
Thumbs up

Gracias egostar, realmente funciona de 10, yo le tenia miedo a sql pero realmente la logica no es tan complicada, al contrario es mas facil de lo que parece.

desde ya muchas gracias.
Responder Con Cita
  #8  
Antiguo 10-11-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.560
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Petolansa Ver Mensaje
Gracias egostar, realmente funciona de 10, yo le tenia miedo a sql pero realmente la logica no es tan complicada, al contrario es mas facil de lo que parece.

desde ya muchas gracias.
Que bueno que te sirvio, de hecho te recomiendo que trates de usar al máximo SQL y si puedes cambia a otra base de datos mas potente, puedes intentar con Firebird. Paradox es una base muy buena pero es de escritorio, Firebird te da mucho mas poder al hacer tus desarrollos.

Salud OS.
Responder Con Cita
  #9  
Antiguo 10-11-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Bueno para que te sirva solo como un ejemplo mas.
Código Delphi [-]
 QTemp.SQL.Text := 'Select Max(CodOrden) From OrdenProd';
 QTemp.Open;
 Edit2.Text  := IntToStr(QTemp.Fields[0].AsInteger+1);
Busca el máximo numero y le suma uno, en este caso lo presento en un edit.
Saludos
Responder Con Cita
  #10  
Antiguo 10-11-2007
Petolansa Petolansa is offline
Miembro
 
Registrado: jul 2005
Posts: 159
Poder: 19
Petolansa Va por buen camino
La verdad es que observo que permamnente mente se recomienda migrar de base de datos y lo tengo en cuenta para el proximo proyectito, este es una tesis que es para presentar ahora en diciembre, pero luego me dedicare de lleno a firebird con d7.

muchas gracias y hasta mi proxima consulta jeje
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
Dos aplicaciones modificando el mismo registro ... seoane Firebird e Interbase 31 27-09-2007 12:32:28
Guardar cualquier tipo de datos en un mismo archivo metalfox6383 Varios 5 22-08-2005 21:35:54
2 Usuarios Sobre El Mismo Registro AGAG4 Conexión con bases de datos 5 06-09-2004 16:47:36
Usando el mismo Registro AGAG4 SQL 0 17-08-2004 20:33:42
repetir el mismo registro empty Impresión 3 13-04-2004 16:54:19


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