• Welcome to Theos PowerBasic Museum 2017.

Referencing Fields Using PB COM Late Binding

Started by Fredrick Ughimi, July 11, 2009, 02:07:55 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Fredrick Ughimi

Hello Jose,

Been trying stuff with PB COM Late Binding. I get an error in referencing the fields. How do you reference fields using pure PB COM Late Binding codes? Code Snippet:


Object Call oRec.AddNew
    Object Let oRec!Username = sUsername
    Object Let oRec!Password = sPassword
    Object Let oRec!Status = sStatus
Object Call oRec.Update


Kind regards,

José Roca

Still trying to use VB syntax with PB? (see http://www.jose.it-berater.org/smfforum/index.php?topic=2704.0).

The "!" shortcut is not something standard, but a feature of VB.

The easiest way to use AddNew with PB is:


LOCAL v1 AS VARIANT
LOCAL v2 AS VARIANT
DIM   vFieldList(2) AS VARIANT
DIM   vValues(2) AS VARIANT

' Fill the array of fields
vFieldList(0) = "Username"
vFieldList(1) = "Password"
vFieldList(2) = "Status"

' Fill the array of values
vValues(0) = sUsername
vValues(1) = sPassword
vValues(2) = sStatus

' Store the arrays in variants
v1 = vFieldList()
v2 = vValues()

' Add the record
OBJECT CALL oRec.AddNew(v1, v2)


José Roca

 
The translation of the VB code that you have poster will be something like (not tested):


   LOCAL oFields AS DISPATCH
   LOCAL oField AS DISPATCH
   LOCAL vIdx AS VARIANT
   LOCAL vValue AS VARIANT
   
   OBJECT CALL oRec.AddNew
   OBJECT GET oRec.Fields TO oFields
   vIdx = "Username"
   OBJECT GET oFields.Item(vIdx) TO oField
   OBJECT LET oField.Value = sUserName
   vIdx = "Password"
   OBJECT GET oFields.Item(vIdx) TO oField
   OBJECT LET oField.Value = sPassword
   vIdx = "Status"
   OBJECT GET oFields.Item(vIdx) TO oField
   OBJECT LET oField.Value = sStatus
   OBJECT CALL oRec.Update


Fredrick Ughimi


Fredrick Ughimi

Jose,

Are there other sample codes somewhere - Using Late Binding to access database.

Kind regards,

José Roca

 
I'm afraid not. I don't use Automation, but direct interface calls.