New AdoRdd Version 1.070317 at
Improvements and corrected bugs:
ADO_ORDCREATE after creating index wasnt opening it.
ADO_SEEK key with multiple fields with softseek on was going to eof instead of last key.
ADOFILE if connection not valid returns now .F. instead of HB_FAILURE.
ADOOPENCONNECT if engine its not supported or wrongly set alerts the user.
ADOBEGINTRANS if workarea not specified opens a transactions for each opened connection
ADOCOMMITTRANS and ADOROLLBACKTRANS the same as ADOBEGINTRANS
New function ADONESTEDTRANS( nWA ) returns nr of nested transactions
NEW ERROR CODE 10600 - connection not available cant find transactions
ADO_ALREADYOPEN Test if the open recordset has same Sql query statement.
ADORECCOUNT Table name was not being converted to get fieldrecno if any defined
for that table always returned that default one.
ADOPREOPENTHRESHOLD Faster counting records. Doesn't cache any tables with WHERE clause.
All ADO cursors changed in the code from adopendynamic to adopenstatic, although it always
started as adopenstatic.
New features:
New option PORT in SET ADO DEFAULT DATABASE ...
ADO_ORDINFO ordwildseek implemented
Multibag orders support with new SET:
SET ADODBF MULTIBAG INDEX LIST TO { { "INDEX NAME", {TAGORDER 1","TAGORDER2"} } }
This allows multibag index file support exactly the same as any other DBf rdd.
ATTENTION
Now when SET AUTOOPEN ON doesn't open all index files automatically in SET ADODBF INDEX LIST instead
only opens the INDEX NAME present in SET ADODBF MULTIBAG INDEX LIST TO that match the table name.
Faster opening recordsets:
SET RECORDSET OPEN WHERE CLAUSE TO { { "TABLENAME", "SQL WHERE EXPRESSION" } }
ADOWHERECLAUSE ADORDD function allowing us to change the recordset WHERE clause on the fly keeping all
workarea information as Filters, Scopes, Indexes, etc.
Ex
SET RECORDSET OPEN WHERE CLAUSE TO { { "table", "FIELDANEMYEAR = '2017'" } }
USE table
BROWSE() //only records that meet "where" clause
//we want to see some historic data
cOldQry := ADOWHERECLAUSE( SELECT(), "FIELDANEMYEAR = '2012'" )
BROWSE()
//Get back to current year
ADOWHERECLAUSE( SELECT(), cOldQry )
BROWSE()
↧