FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour C贸mo conocer el siguiente folio?
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
C贸mo conocer el siguiente folio?
Posted: Wed Feb 26, 2020 10:49 PM

Hola foreros:

Tengo una tabla con MySQL que tiene un campo AUTO_INCREMENTAL, la pregunta es
c贸mo puedo saber cual es el siguiente n煤mero que hay en ese campo AUTO_INCREMENTAL?

Tengo una soluci贸n que abre el SCHEMA y funciona bien, la 煤nica pega es que se demora
varios segundos, dir铆a yo m谩s de lo necesario.

Alguna idea?

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: C贸mo conocer el siguiente folio?
Posted: Thu Feb 27, 2020 12:06 PM
Hola Armando

yo lo usaba asi:

Code (fw): Select all Collapse
nHis :=  oSql:QueryData("SELECT COUNT(*) FROM TablaHistorial")
cHis := TRANSFORM(VAL(nHis)+1,"99999999")


fue lo 煤nico que encontr茅 para determinar cual era el siguiente incremental de es tabla, si hay otra opci贸n mejor, favor que la publique.

saludos
SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: C贸mo conocer el siguiente folio?
Posted: Thu Feb 27, 2020 12:13 PM
Tambi茅n podr铆a ser:

Code (fw): Select all Collapse
nUltimo := oCn : QueryResult( "select max( id ) from mitabla" )
nUltimo++


Saludos
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: C贸mo conocer el siguiente folio?
Posted: Thu Feb 27, 2020 12:33 PM
Otra forma

Code (fw): Select all Collapse
oVar:=  "SHOW TABLE STATUS LIKE 'tutabla';"
oRs := FW_OPENRECORDSET(oCnx,oVar,adLockOptimistic,adOpenKeyset) 
nRegistros := oRs:RecordCount()
If nRegistros#0
    nSiguiente := oRs:Fields( "Auto_increment" ):Value
Endif
Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: C贸mo conocer el siguiente folio?
Posted: Thu Feb 27, 2020 02:18 PM

Muchachos:

Muchas gracias por sus aportes, pruebo y aviso.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: C贸mo conocer el siguiente folio?
Posted: Thu Feb 27, 2020 02:48 PM

Muchachos:

Antes que nada muchas gracias por sus aportes, aqu铆 los resultados:

La sugerencia de mi Tocayo Lagunas, la funci贸n COUNT() nos deja el
n煤mero de registros que hay en la tabla, no considera los eliminados,
por ejemplo el AUTO_INCREMENTAL indica 43, COUNT(
) nos indica
41, f铆sicamente hay 42 uno lo elimine, por eso quedan 42.

La sugerencia de Hor谩cio MAX(ID), con los mismo datos del ejemplo
anterior, nos muestra el ID m谩ximo que hay en la tabla 42, pero si
eliminamos el 煤ltimo registro a帽adido, el 42, MAX(ID) muestra 41.

La sugerencia de Leandro (Me doy cuenta que te has aplicado bien),
aunque hay registros eliminados sean los que sean me muestra 43
que es el n煤mero correcto.

Saludos foreros y gracias nuevamente por sus aportes

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: C贸mo conocer el siguiente folio?
Posted: Thu Feb 27, 2020 10:29 PM
yo tengo este procedure en my db de mysql tavez tu pueda servir algo.

Code (fw): Select all Collapse
CREATE DEFINER=`secure`@`%` TRIGGER `InsertInspection` BEFORE INSERT ON `inspection` FOR EACH ROW BEGIN
聽 聽 set @auto_id := ( SELECT AUTO_INCREMENT 
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽FROM INFORMATION_SCHEMA.TABLES
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽WHERE TABLE_NAME='inspection'
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽AND TABLE_SCHEMA=DATABASE() ); 
聽 聽 set new.id_inspection = @auto_id;
END
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: C贸mo conocer el siguiente folio?
Posted: Thu Feb 27, 2020 10:50 PM
Carlos:

Muchas gracias por el aporte, lo tengo como sugieres y funciona de 100, el problema
es que es lento, varios segundos m谩s de lo necesario, pero el tiempo suficiente para
que el usuario desespere y empiece a oprimir teclas a diestra y siniestra pensando
que el computador se "atoro".

Code (fw): Select all Collapse
聽 聽 聽 聽 oRsJes:Source聽 聽聽 聽 聽 聽 聽 聽 := "SELECT " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "AUTO_INCREMENT " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "FROM " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "INFORMATION_SCHEMA.TABLES " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "WHERE " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "TABLE_SCHEMA = 'SiaJaem' " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "AND " +;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 "TABLE_NAME = 'Viajes'"


Con la sugerencia de Leandro problema superado.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: C贸mo conocer el siguiente folio?
Posted: Fri Feb 28, 2020 12:30 PM

Armando. como estas, prueba esto

aCampos:={ 'cod_interno'ion'' }
aValues:={ CodControl }
xServer:Insert("ventadiaria", aCampos, aValues )

oQryId := xServer:Query( "SELECT last_insert_id() AS nId")
nReserva := oQryId:nId

saludos

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: C贸mo conocer el siguiente folio?
Posted: Fri Feb 28, 2020 05:12 PM

Hola Jos茅:

Saludos al cr铆o, tambi茅n es una buena soluci贸n, aunque con la sugerencia
de Leandro solucione el problema.

Muchas gracias, Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero

Continue the discussion