SET ORDER TO 0

SET ORDER TO 0

Postby karinha » Wed Nov 05, 2008 1:20 pm

Buenos dias,

Por favor, necesito mas informaciones sobre este comando.

Cuando devo usarlo en FIVEWIN??

Cual las causas y consecuencias??

Porque debo usalo ó no? Y cuando debo usar?

Gracias

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby Armando » Wed Nov 05, 2008 1:43 pm

João:

Si comprendemos lo que hace el comando SET ORDER será más fácil entender donde usarlo y las posibles consecuencias.

Tomado de la DOC de clipper:

Code: Select all  Expand view
SET ORDER TO 0 restaura el acceso a la base de datos al orden natural de como se fueron grabando los registos (sin usar índice), pero deja todos los índices abiertos. SET ORDER TO sin argumentos cierra todos los índices y vacia la lista de índices.


Ahora, donde usarlo ?, ummm un ejemplo sería: cuando quieras leer toda la DBF en el orden en que llegaron los registros o cuando no importa el orden de ningún índice, deduzco que eso acelera la lectura pues no utiliza índice alguno.

Consecuencias ?, veo riesgo de agregar nuevos registros sin actualizar los índices con el famoso error INDEX FILE IS CORRUPTED sobre todo si usamos SET ORDER TO sin paramétros.

Otra consecuencia ?, no podras usar la función DBSEEK() pues no hay un índice definido.

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
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Adolfo » Wed Nov 05, 2008 1:47 pm

Karihna

Primero : "Set order to " no es un comando de FIVEWIN, es de Harbour, xHarbour o Clipper

Segundo : La intencion de "Set Order to 0" o de "Set order to" es de desestimar los indices actuales y dejar la dbf ordenada por el orden fisico de ingreso, como si ningun indice se hubiera abierto.

Recuerda que ha pesar de poner "Set Order to 0", los indices aun estan abiertos, e igual se actualizan si ingresas o eliminas algun registro.

Desde Chile
Adolfo
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Postby karinha » Wed Nov 05, 2008 1:52 pm

Gracias, amigos.

Mas sugerencias?

Pués en algunos casos, si uso SET ORDER TO 0 en mi programa, en la hora de grabar la alteracion ó inclusion(anadir) me genera errores.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby karinha » Wed Nov 05, 2008 2:31 pm

Señores, donde está la documentacion sobre el tema SET ORDER TO 0(ciero) ??


Desculpas a Carlos Mora.

Post, retirado.
Last edited by karinha on Wed Nov 05, 2008 6:41 pm, edited 1 time in total.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby Armando » Wed Nov 05, 2008 2:58 pm

Joao:

Lo que muestras es una recopilación sobre índices CDX, muy respetable desde luego, pero no es la documentación de clipper.

Busca aquí.

http://www.ousob.com/ng/53guide/index.php

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
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby karinha » Wed Nov 05, 2008 3:03 pm

Armando wrote:Joao:

Lo que muestras es una recopilación sobre índices CDX, muy respetable desde luego, pero no es la documentación de clipper.

Busca aquí.

http://www.ousob.com/ng/53guide/index.php

Saludos


Gracias Armando, podrias TRADUZIR(Translate):

http://www.ousob.com/ng/53guide/ngec1fc.php

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby Armando » Wed Nov 05, 2008 3:16 pm

João:

Resumiendo, el texto dice lo mismo que te mencioné en mi primer POST y lo mismo que te explicó Adolfo.

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
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby karinha » Wed Nov 05, 2008 4:31 pm

Armando wrote:João:

Resumiendo, el texto dice lo mismo que te mencioné en mi primer POST y lo mismo que te explicó Adolfo.

Saludos


Gracias Armando, pero sigo con la duda:

Porque en algunas ocasiones, no puedo GRABAR con el comando REPLACE??

El que puede estar errado?

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby Carlos Mora » Wed Nov 05, 2008 5:50 pm

Karinha,

vas a tener que hacer mejor tu pregunta, porque este es un foro de programadores, los brujos y adivinos deben leer otros foros. Si no pones el error ¿Como piensas que alguien puede adivinar de que se trata? Dices que te da error, pero no dices cual, no pones un ejemplo, como crees que algún compañero puede adivinar de que estas hablando?

El que hayas pegado un documento enorme no nos dice nada, salvo que ensucias el hilo con información que no es relevante, más te valdría leer lo que dice el documento y no ponerlo como un post.

Da más información para que los compañeros puedan ayudarte. Ayuda a que te ayuden. Pon el ejemplo.
Carlos Mora
 
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Postby karinha » Wed Nov 05, 2008 6:43 pm

Carlos Mora wrote:Karinha,

vas a tener que hacer mejor tu pregunta, porque este es un foro de programadores, los brujos y adivinos deben leer otros foros. Si no pones el error ¿Como piensas que alguien puede adivinar de que se trata? Dices que te da error, pero no dices cual, no pones un ejemplo, como crees que algún compañero puede adivinar de que estas hablando?

El que hayas pegado un documento enorme no nos dice nada, salvo que ensucias el hilo con información que no es relevante, más te valdría leer lo que dice el documento y no ponerlo como un post.

Da más información para que los compañeros puedan ayudarte. Ayuda a que te ayuden. Pon el ejemplo.


Gracias por contestar Carlos.

Explico:

Desculpe mi portunhol.

Las veces el programa aborta.

Otras, el ListBox no me retorna correcto.

Mas una vez, mil desculpas.

Abrazos.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby FiveWiDi » Wed Nov 05, 2008 7:37 pm

karinha wrote:Gracias por contestar Carlos.

Explico:

Desculpe mi portunhol.

Las veces el programa aborta.

Otras, el ListBox no me retorna correcto.

Mas una vez, mil desculpas.

Abrazos.

Saludos.



Voy a decir una tontería pero prueba:

ORDSETFOCUS( 0 )

Saludos
Carlos G.
FiveWiDi
 
Posts: 1060
Joined: Mon Oct 10, 2005 2:38 pm

Postby karinha » Wed Nov 05, 2008 8:04 pm

FiveWiDi wrote:
karinha wrote:Gracias por contestar Carlos.

Explico:

Desculpe mi portunhol.

Las veces el programa aborta.

Otras, el ListBox no me retorna correcto.

Mas una vez, mil desculpas.

Abrazos.

Saludos.



Voy a decir una tontería pero prueba:

ORDSETFOCUS( 0 )

Saludos
Carlos G.


Gracias por la sugerencia Carlos, és una idéa.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby jose_murugosa » Thu Nov 06, 2008 10:33 am

A riesgo de parecer reiterativo:
Si utilizas harbour/xharbour:

SET ORDER TO <nIndexPos>
nIndexPos - Es un valor numérico que especifica el orden o posición del indice que será el de control.
si no se especifica o se especifica 0 EN AMBOS CASOS los indices que hayan sido abiertos PERMANECEN ABIERTOS Y SE ACTUALIZAN!!!
si son INDICES NTX el nindexpos es el numero de orden de apertura, es decir:
use clientes index ind1, ind2, ind3
en este caso
0 es orden natural (siempre)
1 es ind1 como indice de control
2 es ind2 y 3 es ind3

Si son indices CDX nIndexpos es el orden de creación de los tags en el bag.
es decir:
si al crear los indices se hizo así:
USE CLIENTES
index on nro_cli tag ncli
index on nombre tag nombre
index on direccion tag direccion

si utilizo SET AUTOPEN ON (por ejemplo)
USE CLIENTES
SET ORDER TO 2
El indice de control será "nombre"
OrdSetFocus(1)
el indice de control será "ncli"
SET ORDER TO 0
La base queda en orden natural PERO NO SE CIERRAN LOS INDICES Y POR LO TANTO SE ACTUALIZAN.
SET ORDER TO
LO MISMO, NO SE CIERRAN LOS INDICES Y POR LO TANTO SE ACTUALIZAN.

Extraído de la documentación de xHarbour.
Texto Original:

SET ORDER TO <nIndexPos>
SET ORDER TO TAG <cIndexName> [IN <cIndexFile]

Arguments
TO <nIndexPos>
This is a numeric value specifying the ordinal position of the index to select as controlling index. Indexes are numbered in the sequence they are opened, beginning with 1. When no argument is passed or when the order is 0, all indexes remain open, but database navigation follows the physical order of records. That is, there is no controlling index.
TO TAG <cIndexName>
This is the symbolic name of the index to select as the controlling index. It can be specified as a literal name or a character expression enclosed in parentheses. The TAG option is usually supported by RDDs capable of maintaining multiple-index files, such as DBFCDX.
IN <cIndexFile>
<cIndexFile> is the name of the file containing the index to select. If not specified, all index files open in the current work area are searched for the index with the name <cIndexTag>. The file name can be specified as a literal name or a character expression enclosed in parentheses. When the file extension is omitted, it is determined by the database driver that opened the file. Description
The SET ORDER TO command selects the controlling index from a list of indexes open in the current work area. Indexes are opened with the SET INDEX command or the INDEX option of the USE command. The latter, however, is not recommended in a network environment.
The controlling index can either be specified by its ordinal position <nIndexPos>, or by its symbolic name <cIndexName>. The former is determined by the order in which indexes are opened (beginning with 1), while the latter is specified with the TAG option of the INDEX command when the index is created.
A controlling index affects the logical order of records in a work area. Relative database navigation with SKIP, GO TOP and GO BOTTOM follows this order, rather than the physical order how records are stored in a database.
The controlling index can be disabled temporarily by setting the index order to 0. This leaves all indexes open but database navigation follows the physical order.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1144
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 90 guests