Actualizar datos

14/05/2006 - 21:27 por Rafael Glez | Informe spam
Tengo una base de datos de cliente, y por medio de la web la gente actualiza
y crea nuevo clientes, y le problema esta en crear el id de cliente pues
quiero que cada vez que una persona agrege un cliente este se incremente y
puedan estar varias personas creando clientes sin que esto influya en el
orden.
Lo que realmente necesito es saber como puedo hacer para que cuando le den
al boton de acepar este busque el id del ultimo cliente y le sume uno

Preguntas similare

Leer las respuestas

#6 Dani Castillo
15/05/2006 - 16:03 | Informe spam
si , se pierde al reiniciar de ahi la comprobacion que dije
if application("micontador") & "" ="" then
' lo recupero abriendo un rs sobre select max(id)
application("micontador")=.
end if

de esta forma si tenemos en application algo, lo usamos, sino , recurrimos a
contarlos con el max(id) que nos devuelve el valor maximo del contador (mas
eficiente que ordenar y tomar el primer valor, directamente te devuelve el
maximo)

el problema del max(id) es que es una consulta sobre *toda* la tabla para
obtener el mayor numero de id, y eso tiene un coste temporal , tal como lo
planteaba yo application viene a funcionar como una 'cache' de ese valor, si
esta accesible e inicializada no necesito acceder al contador, si no esta
inicializada le pongo el valor correcto y los siguientes accesos tendran ya
la app



"urko binarya" escribió en el mensaje
news:%
umh pero application("micontador")=.
creo que daria problemas.
si se reinicia el servidor? esto desaparece y no te daria el valor real.

podrias hacer una select de todos. ordenalas segun el codigo y recoger el
ultimo codigo.
si lo ordenas en descendente tendrias el primer registro, el ultimo.
si se dan de alta a la vez los usuarios tendrias problemas si no lo
controlas.
o hacer si se puede un procedimiento almacenado para hacer un
autonumerico.

tienen que ser codigocliente a la fuerza seguidos?
puedes generar un numero aleatorio, comprobar que no exista en la BD
y asignarlo al nuevo,
y si quieres cada X tiempo asignarles un codigo o otro segun la posicion
en la tabla.


saludos
urko





"Dani Castillo" <danicastilloarrobahotmail.com> escribió en el mensaje
news:%
Mmm entonces puede darte problemas :-(
un "select max(id) as maximo from ..." en sql serviria... en teoria, te
daria el maximo id, pero es lento si tienes muchos registros, no es muy
eficiente

otra opcion: anotar el id maximo en 'algun lado' :
opciones:
en una tabla aparte de la bd
en application

si lo apuntas en application te faltara calcular 'al principio' , cuando
arranques por primera vez o si reinicias el server etc, en ese caso seria
con el select max

es decir, harias algo como

if application("micontador") & "" ="" then
' lo recupero abriendo un rs sobre select max(id)
application("micontador")=.
end if
application("micontador")=application("micontador")+1

.

eso te puede dar problema de sincronismo , usa application.lock y unlock


____________________________
Daniel Castillo Martinez
Ajuntament d'Alaquàs. Societat de la Informació

____________________________
"Rafael Glez" escribió en el mensaje
news:
Esta base de datos no es de access es una base de datos de un porgrama
de
facturacion esta base de datos es advantage data server y no tiene lo
del
autoincremento
"Dani Castillo" <danicastilloarrobahotmail.com> escribió en el mensaje
news:Os3hIJ$
> no lo hagas asi , usa el tipo de datos autoincrementativo de la base
> de
> datos, está pensado justamente para eso
>
>
> ____________________________
> "Rafael Glez" escribió en el mensaje
> news:
>> Tengo una base de datos de cliente, y por medio de la web la gente
> actualiza
>> y crea nuevo clientes, y le problema esta en crear el id de cliente


pues
>> quiero que cada vez que una persona agrege un cliente este se


incremente
>> y
>> puedan estar varias personas creando clientes sin que esto influya en


el
>> orden.
>> Lo que realmente necesito es saber como puedo hacer para que cuando
>> le
>> den
>> al boton de acepar este busque el id del ultimo cliente y le sume uno
>>
>>
>
>










email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida