podria ser que:
- Code: Select all Expand view
oCn:QueryResult( "select field1, field2 to my table where field3 = 'x' " ) // 0.21 seconds
retorna un arreglo simple de datos
y que
- Code: Select all Expand view
oCn:Rowset( "select field1, field2 to my table where field3 = 'x' " ) // 1.87 seconds
acá creo que rao hace uso de una estructura de datos propia para poder hacer los filtrados y ordenamiento de forma local (cliente), para no hacer lecturas al servidor constantemente, aunado a que es un objeto bastante complejo, data/var y métodos, que es en lo cual donde realmente toma su tiempo, no
tanto en la recuperación del cursor de datos que para ambos métodos es igual.
en lo personal, lo miro normal.
por eso cuando la información que se pretende recuperar es poca, y una sola fila de datos es preferible usar QueryResult, no tiene sentido usar RowSet, dado que no se hará búsqueda, ordenaciones, etc.
otro tip importantes es que, en un recordset, cuando usamos la asignación ( oQry:FIELD1 := 10 ) y lectura de un campo del query ( ?oQry:FIELD1 ), (
tanto tmysq y tdolphin, en fwh no lo tengo claro ya que no se proporcionan los fuentes), se hace uso del método error para poder asignar y recuperar la información y eso agrega tiempo adicional, acá Rao podría aclarar.