FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Pasar query a un arreglo
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Pasar query a un arreglo
Posted: Sat Jun 29, 2019 06:25 PM

Hola foro,

Como puedo leer una tabla mysql y pasar su contenido a un arreglo?

Hay algun ejemplo en Fivewin?

Gracias

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 12:11 AM
Usa oQry:fillarray...es lo mejor y mas rapido, saludos... :-)

Code (fw): Select all Collapse
// FILLARRAY
oQry:FillArray( {| aRow | AAdd( oBrw:aArrayData, { aRow[2], aRow[4] } ) } ) // CON POSICION CAMPO

oBrw:aArrayData := oQry:FillArray( , { "vende_cedula", "vende_apellidos" } ) // CON CAMPOS. PARA LOS xBRW O UN ARRAY

oQry:FillArray( {| aRow | ( AAdd( Array1, cValToChar( aRow[1] ) ) ,; // PARA LOS COMBOBOX CON QRY
                             AAdd( Array2, aRow[2]) ) }, )
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 01:51 AM
joseluisysturiz wrote:Usa oQry:fillarray...es lo mejor y mas rapido, saludos... :-)

Code (fw): Select all Collapse
// FILLARRAY
oQry:FillArray( {| aRow | AAdd( oBrw:aArrayData, { aRow[2], aRow[4] } ) } ) // CON POSICION CAMPO

oBrw:aArrayData := oQry:FillArray( , { "vende_cedula", "vende_apellidos" } ) // CON CAMPOS. PARA LOS xBRW O UN ARRAY

oQry:FillArray( {| aRow | ( AAdd( Array1, cValToChar( aRow[1] ) ) ,; // PARA LOS COMBOBOX CON QRY
                             AAdd( Array2, aRow[2]) ) }, )


Muchas gracias paisano

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 02:19 AM

Olvide comentarte que esto es usando TDolphin, saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 02:20 AM
joseluisysturiz wrote:Olvide comentarte que esto es usando TDolphin, saludos... :-)


Si, imagino que es TDolphin

Yo uso Eagle1, deberia funcionar ya que solo es el resultado del query

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 03:03 AM

fillarray si no me equivoco, es un methodo de TDolphin, en FWMaria o algo asi nativo de FW se usa algo diferente, aun no he migrado a el nativo de FW, pero para alla voy Dios mediante, tambien puedes hacer un recorrido del qry y usar aadd(array, valores/{valores}), es lo mas clasico, saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 02:17 PM
Native FWH:
Simple and the fastest:

aData := oCn:Execute( cQry )

Example:
Code (fw): Select all Collapse
aStates := oCn:Execute( "select code,name from states" )
Regards



G. N. Rao.

Hyderabad, India
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 02:19 PM
nageswaragunupudi wrote:Native FWH:
Simple and the fastest:

aData := oCn:Execute( cQry )

Example:
Code (fw): Select all Collapse
aStates := oCn:Execute( "select code,name from states" )


Thanks Mr Rao

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 02:20 PM
joseluisysturiz wrote:fillarray si no me equivoco, es un methodo de TDolphin, en FWMaria o algo asi nativo de FW se usa algo diferente, aun no he migrado a el nativo de FW, pero para alla voy Dios mediante, tambien puedes hacer un recorrido del qry y usar aadd(array, valores/{valores}), es lo mas clasico, saludos... :-)


Gracias Jose Luis por la aclaratoria

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 04:47 PM
nageswaragunupudi wrote:Native FWH:
Simple and the fastest:

aData := oCn:Execute( cQry )

Example:
Code (fw): Select all Collapse
aStates := oCn:Execute( "select code,name from states" )


Buen dia Mr. NAO, si ya tengo un queri hecho con fillarray selecciono solo los campos que deseo pasar al array sin necesidad de hacer la consulta al momento, como lo haria con la nativa de FW.? gracias... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 05:00 PM
If you already made a query (we call it RowSet), then you can use method GetRows(), which is similar to FillArray() of Dolphin.

aData := oRs:GetRows( [nRows], [nFromRow], [aFieldNames] )

Example:
Code (fw): Select all Collapse
oRs := oCn:RowSet( "customer" )
aDataFull := oRs:GetRows()
aDataPart := oRs:GetRows( 20, 101, { "first", "city", "salary" } )


But, if you did not read query (rowset) already, we can save lot of time by directly reading the data into an array, instead of first reading into a query and then copying data from query into an array.
This is simple and fast
Code (fw): Select all Collapse
aData := oCn:Execute( "select first, city, salary from customer where id between 101 and 120" )
Regards



G. N. Rao.

Hyderabad, India
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 07:27 PM
nageswaragunupudi wrote:If you already made a query (we call it RowSet), then you can use method GetRows(), which is similar to FillArray() of Dolphin.

aData := oRs:GetRows( [nRows], [nFromRow], [aFieldNames] )

Example:
Code (fw): Select all Collapse
oRs := oCn:RowSet( "customer" )
aDataFull := oRs:GetRows()
aDataPart := oRs:GetRows( 20, 101, { "first", "city", "salary" } )


But, if you did not read query (rowset) already, we can save lot of time by directly reading the data into an array, instead of first reading into a query and then copying data from query into an array.
This is simple and fast
Code (fw): Select all Collapse
aData := oCn:Execute( "select first, city, salary from customer where id between 101 and 120" )



Excelente, veo que se porta igual que fillarray, ahora otra duda...se puede agrgar un valor que no sea de la consulta, como por ejemplo un valor booleano o el valor de una variable.?

ejemplo:

Code (fw): Select all Collapse
aDataPart := oRs:GetRows( 20, 101, { "first", "city", "salary", .f. } )
// Esto seriviria para usar un xbrowse y usar setcheck()

aDataPart := oRs:GetRows( 20, 101, { "first", "city", "salary", nom_var } )

// nom_var seria una VAR externa al query, con fillarray no se como hacerlo, gracias... :
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Pasar query a un arreglo
Posted: Sun Jun 30, 2019 07:30 PM

Quiero empezar a migrar de TDolphin a FWMaria la nativa de FW, por donde inicio.? gracias... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Pasar query a un arreglo
Posted: Mon Jul 01, 2019 02:03 AM

Excelente, veo que se porta igual que fillarray, ahora otra duda...se puede agrgar un valor que no sea de la consulta, como por ejemplo un valor booleano o el valor de una variable.?


Every element of the array should be a field name or field number or a character expression using or not using field names.

Example:
Code (fw): Select all Collapse
   PRIVATE n

   oRs   := oCn:customer   // where customer is the table name
   n     := 100
   aData := oRs:GetRows( 5, 11, ;
      { "first-', '+last", "salary/100", "FW_MTHSLAPSED(HireDate,Date())", "n := n + 1" } )


Regards



G. N. Rao.

Hyderabad, India
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Pasar query a un arreglo
Posted: Mon Jul 01, 2019 02:15 AM

Super excelente Mr NAO...Quiero empezar a migrar de TDolphin a FWMaria la nativa de FW, por donde inicio.? gracias... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!