Ver Mensaje Individual
  #1  
Antiguo 18-06-2007
ludan508 ludan508 is offline
Miembro
 
Registrado: ago 2004
Posts: 17
Reputación: 0
ludan508 Va por buen camino
Question Darle un Refresh a la Tabla

Que tal..!!

tengo este problema actualmente....
La Base de Datos esta hecho en MySQL... y programando en Borland Delphi 2006
el proyecto realizado se va a manejar en 7 sucursales... la cual se esta controlando por sucursal las ventas realizadas...

ahora bien.. en cada sucursal se cuentan con 3 o mas vendedores...
por lo que se tiene que tener bien controlados los pk (primary keys) para que no truene el sistema mientras lo estan manejando...

por lo que yo tengo en el before post de mi tabla la siguiente sintaxis:

Código Delphi [-]
nSucursal := 1; //Saco la Sucursal por ejemplo la sucursal 1;
nCotiza := MaxID; //con una funcion saco el maximo de mi pk de la tabla
 
if tbl_cotiza.State in [dsInsert] then
begin
    while True do
    begin
        With qry_buscaID do
        begin
            Close;
            SQL.Text := 'select * from cat_cotizacion where ' +
                'pk_sucursal = :sucursal and pk_cotiza = :cotiza' ;
            Parameters.ParamByName('sucursal').Value := nSucursal;
            Parameters.ParamByName('cotiza').Value := nCotiza;
            Open;
        end;
 
        if qry_buscaID.isEmpty then
            Break
        else
            nCotiza := nCotiza + 1;
    end;
end;

esa es la sintaxis de mi codigo....
en resumen... entra a un ciclo infinito para buscar donde acomodar el pk buscando si ya existe en la tabla cat_cotizacion y si ya existe este incrementa en uno para volver a hacer la busqueda.

Ahora bien con ejemplos reales... se tienen dos computadoras arrancando el sistema... entonces ambas van a tener nCotiza en 5 (que es el MaxID - Maximo mas uno).

la primera maquina ya guardo.. entrando al ciclo y permitiendolo guardar con nCotiza en 5, ahora bien... lo ideal es que en la maquina dos al intentar guardar entra al ciclo.. y al encontrar que nCotiza = 5 ya existe este tiene que incrementarse en uno... osea nCotiza = 6 para asi poder guardar sus datos.... esa es la idea...

pero me resulta que al hacer la busqueda en la seguna mquina... me dice que no existe aun... y me intenta guardar en nCotiza = 5 pero al darle el Post, truena diciendome que se duplican los primary key..!!

que me recomiendan hacer????
__________________
Atte.

«° ßåRôµ Dâµµ¥-Bõ¥ °»
v. 2007
Responder Con Cita