Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2007
ludan508 ludan508 is offline
Miembro
 
Registrado: ago 2004
Posts: 17
Poder: 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
  #2  
Antiguo 18-06-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Por que no creas un stored que se encargue haga lo siguiente:

Inicia transacción
Genera el Siguiente Id
Inserta el registro
Commitea la transacción

y agregas un handler para si ocurre un error eches para atras la transacción y no te bloquee la tabla :P.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 18-06-2007
ludan508 ludan508 is offline
Miembro
 
Registrado: ago 2004
Posts: 17
Poder: 0
ludan508 Va por buen camino
Question Usar o no usar transacciones..!!!

Te agradezco mucho tu posteo..!!

Ya pude resolver el problema... pero al hacerlo me meti en otro problema...

resulta que el problema era el manejo de las transacciones... al inicio de la ventana de doy un BeginTrans y al dar el boton de guardar... le doy el CommitTrans...

ahh pues le quite esas lines.. y el codigo que escribi anteriormente ya funciona a la perfeccion..!!

ahora bien.. me meti en otro problema... que desventajas tengo al no usar transacciones...!!! ????
__________________
Atte.

«° ßåRôµ Dâµµ¥-Bõ¥ °»
v. 2007
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
Problema de Refresh de Tabla IB! juliopag1 Firebird e Interbase 5 19-10-2005 17:16:06
refresh a toda la tabla jzginez Firebird e Interbase 3 12-09-2005 17:27:49
darle movimiento a este grafico cristian bravo Gráficos 4 10-05-2004 17:41:20
Darle ruta a un archivo Kaesbu API de Windows 1 24-09-2003 17:47:09
Darle Vida a una IbQuery Rabata Conexión con bases de datos 6 16-09-2003 18:48:23


La franja horaria es GMT +2. Ahora son las 15:09:33.


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