• Welcome to Theos PowerBasic Museum 2017.

News:

Attachments are only available to registered users.
Please register using your full, real name.

Main Menu

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.