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 07-05-2004
maruenda maruenda is offline
Miembro
 
Registrado: oct 2003
Ubicación: elche
Posts: 173
Poder: 21
maruenda Va por buen camino
Thumbs down

voy a usar paradox. de todas formas la solucion de incluir un campo, me parece buena. Hay algun numero que identifique de manera unica a cada maquina? y si es asi, como obtenerlo? gracias
__________________
frenadol
Responder Con Cita
  #2  
Antiguo 08-05-2004
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
El metodo descrito no es seguro, se podrian estar ejecutando a la vez dos programas en un mismo equipo.
Ademas obliga a añadir un campo mas en la tabla, con lo cual esta ocupara mas de lo necesario.
El problema que tienes es una de las razones (hay mas, algunas mucho mas problematicas) por las que en general, se desaconseja el uso de campos autoincrementados.
Mejor usa una tabla de contadores, o busca en la tabla el ultimo cliente y sumale uno.
Otras razon para no usar los autoincrementados de paradox:
No puedes controlar los valores, si accidentalmente se borra un cliente, no podras volverlo a dar de alta con el mismo codigo.

Saludos
Responder Con Cita
  #3  
Antiguo 08-05-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 21
sanxpue Va por buen camino
Talking viendo que..

Viendo que lo quieres hacer con paradox (hay veces que nos deja paradox jejeje), entonces usa ls propiedad exclusive de TTable..

pero aguas aguas... tienes que atraparla con una excepcion...

Código:
Procedure MeteDato...
Var
  UnBoolean : Boolean;
Begin
  UnBoolean := True;
  Table1.Active := False; //x si esta activo
  While UnBoolean Do
  Begin        
     Try
       Table1.Exclusive := True;
       Table1.Active := True;
       Metes_los_datos;
       //despues de meter los datos
       Me_Voy_al_Final_de_la_Tabla;// y saco el numero incrementable
       //pero no te vayas a colgar ahi por que pueden que otros esten
       //esperando para meter los datos
       Table1.Exclusive := False;
       Table1.Active := False;
       UnBoolean := False;
    Except
      //aqui puedes escribirle a una etiqueta algo
      label1.Caption := 'Espere todavia no se ha metido';
    End;
  End;
  //Aqui es donde debes de mostrar el numero que sacaste
  label1.Caption := 'Esperando nuevo Dato';
End;
Otra.. si vas usar exclusive fijate que no este abierto tu dbDesktop o lo que vayas a usar para generar tus tablitas... por que si estan abiertas.. puede que te metas en un infiernito y no sepas por que... je

Por eso ya lo dijo el Santo Papa : ¡¡¡Paradox¡¡¡ que no hay otra cosa je
__________________
saludos desde Puebla Mexico..
asanxt@hotmail.com
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
Responder Con Cita
  #4  
Antiguo 11-05-2004
SyncMaster SyncMaster is offline
Miembro
 
Registrado: mar 2004
Posts: 15
Poder: 0
SyncMaster Va por buen camino
Tengo ese mismo problema sobre FireBird 1.5...actualmente uso la clase TIBTable relacionada con una tabla X de la base de datos...me baso en el siguiente truco

Código:
 With TABLA Do 
Begin
Append;
FieldByName('CAMPO').AsString:='BLA BLA';
Post;
// Asi obtengo el numero
Active:=False;
Active:=True;
Last;
Numero:=FieldByName('NUM').AsInteger; 
End;
Funciona sin problemas....PERO tiene el inconveniente que indica Maruenda :

Cita:
Pero puede darse el caso de que en el intervalo de tiempo entre mi post y la consulta, alguien inserte un cliente, con lo que el dato que me devuelve la consulta, no es correcto.
¿Alguna sugerencia?

Saludos
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


La franja horaria es GMT +2. Ahora son las 01:48:14.


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