Main   Products   Offshore Outsourcing   Customers   Partners   ContactUs  
JDBC Databases
  HXTT Access 7.1.150
  HXTT Cobol 5.0.150
  HXTT DBF 7.1.151
 
  Buy Now
  Support
  Download
  Document
  FAQ
  HXTT Excel 6.1.154
  HXTT Json 1.0.122
  HXTT Paradox 7.1.150
  HXTT PDF 2.0.150
  HXTT Text(CSV) 7.1.150
  HXTT Word 1.1.150
  HXTT XML 4.0.151
Offshore Outsourcing
Free Resources
  Firewall Tunneling
  Search Indexing Robot
  Conditional Compilation
  Password Recovery for MS Access
  Password Recovery for Corel Paradox
  Checksum Tool for MD5
  Character Set Converter
  Pyramid - Poker of ZYH
   
   
   
Heng Xing Tian Tai Lab of Xi'an City (abbr, HXTT)

HXTT DBF
atualização de arquivo.idx
Joedson
2020-12-22 14:09:50.0
esta é a busca.

String sql = "select * from FROM ARQPED where PEDIDO= '000004' "
try {
conn_Pedido = DriverManager.getConnection(url_Pedido);

addIndexInfoToCGP("D:/RAZAO/EST", "ARQPED", "PEDIDO.IDX");

stmt_Pedido = conn_Pedido.createStatement();
rs_Pedido = stmt_Pedido.executeQuery(sql);
while (rs_Pedido.next()) {

System.out.println(rs_Pedido.getString("PEDIDO"));

}

} catch (SQLException e) {
System.out.println("Oops-> " + e);
}

O arquvo ARQPED.CGP já está criado, mas o PEDIDO.IDX não atualiza!

alguma ideia do que sejá?


Re:atualização de arquivo.idx
HXTT Support
2020-12-22 15:53:59.0
You can use
String sql = "explain select * from FROM ARQPED where PEDIDO= '000004' "


ResultSetMetaData resultSetMetaData = rs.getMetaData();
int iNumCols = resultSetMetaData.getColumnCount();
while (rs.next()) {
ncount++;
for (int j = 1; j <= iNumCols; j++) {

colval = rs.getString(j);
System.out.print(colval);
if (j < iNumCols) {
System.out.print("\t");
}

}
System.out.println();

}
to print

id id INTEGER 4 10 0
table table VARCHAR 12 40 0
expression expression VARCHAR 12 40 0
key key VARCHAR 12 40 0
id table expression key
1 ARQPED PEDIDO= '000004' PEDIDO /* if you found that, it means that you have ann PEDIDO expression in your index file */

Why PEDIDO.IDX doesn't be updated?
First, you need an update/insert/delete sql to update your table.
Second, the PEDIDO.IDX mabye be updated when insert/delete sql, if there is not a For cluase. For update sql, it won't be update, if the PEDIDO column have not be changed.




Re:Re:atualização de arquivo.idx
Joedson
2020-12-22 19:14:45.0
oi...

não foi encontrado as informações a baixo.

id id INTEGER 4 10 0
tabela tabela VARCHAR 12 40 0
expressão expressão VARCHAR 12 40 0
chave chave VARCHAR 12 40 0
id tabela expressão chave
1 ARQPED PEDIDO = '000004' PEDIDO / * se você encontrou isso, significa que você tem a expressão ann PEDIDO em seu arquivo de índice * /

eu utilizo o addIndexInfoToCGP para outra tabela e funciona normalmente!


Re:Re:Re:atualização de arquivo.idx
Joedson
2020-12-23 14:17:15.0
Oi

alguma ideia?
Re:Re:Re:Re:atualização de arquivo.idx
Joedson
2020-12-23 19:45:16.0
oi
quando eu utilizo
String sql = "SELECT * FROM ARQPED where PEDIDO like '%000004%'"

o addIndexInfoToCGP funciona, mas fica muito lento!

se eu utilizar String sql = "SELECT * FROM ARQPED where PEDIDO ='000004'"

o addIndexInfoToCGP não funciona!
Re:Re:Re:Re:Re:atualização de arquivo.idx
HXTT Support
2020-12-23 23:18:23.0
> String sql = "SELECT * FROM ARQPED where PEDIDO like '%000004%'"
Yeah. It need full table scan.
HXTT DBF will utilize index for
SELECT * FROM ARQPED where PEDIDO like '000004%'"

>o addIndexInfoToCGP não funciona!
Whether it doen't fetch any rows? If so, you should download the latest package, and run once "reindex all on ARQPED" to see whether your query can work normal.



Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
Joedson Gama
2020-12-24 07:24:29.0
reindex all

demora muito tambem.
porque o arquivo é muito grande !

se eu alterar o driver de conexão para
public String conexao = "com.hxtt.sql.admin.Admin";

fica melhor?
Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
Joedson
2020-12-24 10:25:36.0
os arquivos de index são .IDX
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
HXTT Support
2020-12-24 15:29:53.0
DatabaseMetaData dbmd = con.getMetaData();
ResultSet indexInformation = dbmd.getIndexInfo(null, null, tableName, false, false);

to print all index expression.


select top 1 recccount() from ARQPED;

to show the total record number.
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
Joedson Gama
2020-12-25 19:13:28.0
java.sql.SQLException: HXTT driver doesn't support function recccount() now.

o arquivo dbf é grande!

quantidade de registros: 663853
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
Joedson
2020-12-26 05:22:20.0
oi
porque quando eu utilizo o
select * from ARQPED where PEDIDO = '000004'
o arquivo ARQPED.CGP não atualiza o PEDIDO.IDX ?
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
HXTT Support
2020-12-26 16:35:35.0
Sorry. A typo. It should be reccount().

select sql doesn't update your index file. Only Update(insert,delete,update) sql will update your index file.

You can use

reindex PEDIDO.IDX on ARQPED;
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
Joedson
2020-12-26 16:43:07.0
oi, desculpa o incomodo.

fiz vários testes e descobrir que a lentidão é por causa do ARQPED.DBF ser muito grande.

quando faço a busca em registros com numero pequenos Exemplo: 000004 ou 000020,
a resposta é aceitável !
mas quando a busca do registro é de números grandes Exemplo: 006521 ou 216799.
a resposta é muito lenta !

não sei mais o que fazer.
já gerei o ARQPED.CGP com os PEDIDO.IDX.
se executa o comando addIndexInfoToCGP ("D: / RAZAO / EST", "ARQPED", "PEDIDO.IDX"); fica lento do mesmo jeito,
se Index , fica lento também.
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
HXTT Support
2020-12-27 07:19:13.0
String sql = "explain select * from FROM ARQPED where PEDIDO= '000004' "

If it show
key key VARCHAR 12 40 0
id table expression key
1 ARQPED PEDIDO= '000004' PEDIDO /* if you found that, it means that you have an PEDIDO expression in your index file */
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
Joedson
2020-12-27 09:08:22.0
oi

este método só traz o numero do pedido e eu preciso da tabela inteira.

então, eu deveria adiciona todos os campos no IDX ?
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
HXTT Support
2020-12-27 15:24:57.0
You needn't. You can use

DatabaseMetaData dbmd = con.getMetaData();
ResultSet indexInformation = dbmd.getIndexInfo(null, null, tableName, false, false);

to print all index expression.

to know the current built index information for your table.

Then if you think what WHERE clause be usually used, you can use CREATE INDEX sql to add that index file.
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
Joedson Gama
2020-12-27 16:23:51.0
oi
tem como me da um exemplo de como utilizar

DatabaseMetaData dbmd = con.getMetaData();
ResultSet indexInformation = dbmd.getIndexInfo(null, null, tableName, false, false);

?
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
HXTT Support
2020-12-27 16:47:20.0
private static final void printMessage(ResultSet rs)throws SQLException{
ResultSetMetaData resultSetMetaData = rs.
getMetaData();
int iNumCols = resultSetMetaData.getColumnCount();
for (int j = 1; j <= iNumCols; j++) {
System.out.println(resultSetMetaData.getColumnLabel(j)
+ " " + resultSetMetaData.getColumnTypeName(j)
+ " " + resultSetMetaData.getColumnType(j)
+ " " + resultSetMetaData.getPrecision(j)
+ " " + resultSetMetaData.getScale(j)
);
}
Object colval;

long ncount = 0;
while (rs.next()) {
ncount++;
for (int j = 1; j <= iNumCols; j++) {
colval = rs.getObject(j);
System.out.print(colval + " ");
}
System.out.println();
}
rs.close(); //Let the CONCUR_UPDATABLE resultSet release its open files at once.
rs = null;
}



Connection con = DriverManager.getConnection(url,properties);


DatabaseMetaData dbmd = con.getMetaData();

ResultSet rs = dbmd.getIndexInfo( null,null, "ARQPED", false,false);
printMessage(rs);
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
Joedson Gama
2020-12-28 11:53:04.0
oi

esta trazendo o nome dos campos da tabela, e eu preciso das informações contida no campo.

a baixo esta o nome de todos os campos da tabela ARQPED.DBF

PEDIDO VARCHAR
DESC_ITEM VARCHAR
UNIDADE VARCHAR
QUANTIDADE NUMERIC
COD_ITEM VARCHAR
VL_UNIT_AV NUMERIC
VL_TOT_AV NUMERIC
VL_UNIT_AP NUMERIC
VL_TOT_AP NUMERIC
OE VARCHAR
DATA DATE
COD_CLI VARCHAR
COD_VEN VARCHAR
AV_AP VARCHAR
ACRES_P NUMERIC
ACRES_V NUMERIC
DESC_P NUMERIC
DESC_V NUMERIC
PARCELAS VARCHAR
VL_PARC01 NUMERIC
VL_PARC02 NUMERIC
VL_PARC03 NUMERIC
VL_PARC04 NUMERIC
VL_PARC05 NUMERIC
VL_PARC06 NUMERIC
VL_PARC07 NUMERIC
VL_PARC08 NUMERIC
VL_PARC09 NUMERIC
VL_PARC10 NUMERIC
DT_PARC01 DATE
DT_PARC02 DATE
DT_PARC03 DATE
DT_PARC04 DATE
DT_PARC05 DATE
DT_PARC06 DATE
DT_PARC07 DATE
DT_PARC08 DATE
DT_PARC09 DATE
DT_PARC10 DATE
FP_PARC01 VARCHAR
FP_PARC02 VARCHAR
FP_PARC03 VARCHAR
FP_PARC04 VARCHAR
FP_PARC05 VARCHAR
FP_PARC06 VARCHAR
FP_PARC07 VARCHAR
FP_PARC08 VARCHAR
FP_PARC09 VARCHAR
FP_PARC10 VARCHAR
LOJA VARCHAR
CANCELADO VARCHAR
VENDA_T VARCHAR
DESC_I1 VARCHAR
DESC_I2 VARCHAR
DESC_I3 VARCHAR
DESC_I4 VARCHAR
DESC_I5 VARCHAR
CTRL_E VARCHAR
CTRL_S VARCHAR
CTRL_A VARCHAR
Re:Re:Re:Re:Re:Re:Re:Re:atualização de arquivo.idx
HXTT Support
2020-12-30 03:46:48.0
Then you can create an index
CREATE [UNIQUE] INDEX [IF NOT EXISTS] indexName[(keylength)][,...] [OF indexFileName] ON tableName (expression [UNIQUE] [PRIMARY KEY] [ASC|DESC] [FOR expression][,...])

For instance,
create index PEDIDO of ARQPED01.idx on ARQPED (PEDIDO);

Search Key   Search by Last 50 Questions




Google
 

Email: webmaster@hxtt.com
Copyright © 2003-2019 Heng Xing Tian Tai Lab of Xi'an City. | All Rights Reserved. | Privacy | Legal | Sitemap