Page 1 of 1

PmDatabase - Recordset

PostPosted: Fri 27. Dec 2013 12:29:54
by Libor
Dobrý den,

mám dotaz, tentokrát opět ohledně PmDatabase. V PmADO dokáži pracovat s obejktem RsOPEN. Pracuji s SQL dotazi, uvádím zde příklad:

Code: Select all
 
Prikaz_Start_Point = "select * from TABLE(convey.fce_BoxAtSP(" & Promenna & "));"   
set oRs = oDb.DbExecute ("", Prikaz_Start_Point , "")


Poté pomocí -> & oRs.Fields("box_number") mohu s jednotlivými proměnnými pracovat.

Tuto metodu bych rád využíval i v objektu PmDatabase... Nicméně v tomto objektu není tato metoda podporována.

Poraďte mi prosím, jak si jednoduše načíst data do proměnných z daného řádku databáze...

Děkuji.

Libor D.

Re: PmDatabase - Recordset

PostPosted: Thu 09. Jan 2014 7:36:29
by Tomáš Bräuer
Dobrý den,
objekt PmDatabase je zastaralý a veškerý přístup k datům je pomocí jeho vlastních metod (narozdíl od PmADO, kde se nakonec pracuje přímo s originálním ADO recordsetem). V PmDatabase je proto RW vlastnost FieldValues, umožňující číst/psát do libovolného sloupce (jménem/pořadím) v aktivním řádku. viz naše dokumentace http://www.promotic.eu/cz/pmdoc/Objects/Promotic/PmDatabase/PropMeth/FieldValues.htm

Např.
Code: Select all
Dim x
' čtení ze sloupce s názvem "column1" prvního řádku tabulky
If oDb.IsOpen Then
  oDb.MoveFirst
  x = oDb.FieldValues("column1")
  Pm.Debug x
' čtení z prvního sloupce druhého řádku tabulky
  oDb.MoveNext
  x = oDb.FieldValues(0)
  Pm.Debug x
' zápis do třetího sloupce druhého řádku tabulky
  x = 100
  oDb.FieldValues(2) = x
  Pm.Debug x
End If