Sample code for 30+ languages & platforms
PowerBuilder

Keeping Query Params in a Hashtable

Demonstrates how to use a Chilkat Hashtable to hold query params and re-emit as a query param string.

Note: The ToQueryString method was added in Chilkat v9.5.0.92.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Ht
string ls_Qp
oleobject loo_Keys
integer li_NumKeys
string ls_Key
string ls_Val
integer i

li_Success = 0

loo_Ht = create oleobject
li_rc = loo_Ht.ConnectToNewObject("Chilkat.Hashtable")
if li_rc < 0 then
    destroy loo_Ht
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// Add name/value pairs from an existing query param string where the values are already URL encoded.
ls_Qp = "txt=this%20is%20a%20test&color=blue&fruits=apples%26oranges"
li_Success = loo_Ht.AddQueryParams(ls_Qp)

// Add some additional name/value pairs.
loo_Ht.AddStr("name","Jack Sparrow")
loo_Ht.AddStr("movie","Pirates of the Carribean")

// Iterate over the hash table to show what we have..

loo_Keys = create oleobject
li_rc = loo_Keys.ConnectToNewObject("Chilkat.StringTable")

loo_Ht.GetKeys(loo_Keys)
li_NumKeys = loo_Keys.Count

i = 0
do while i < li_NumKeys
    ls_Key = loo_Keys.StringAt(i)
    ls_Val = loo_Ht.LookupStr(ls_Key)
    Write-Debug ls_Key + " = " + ls_Val
    i = i + 1
loop

// Output for the above loop:

// color = blue
// name = Jack Sparrow
// fruits = apples&oranges
// txt = this is a test
// movie = Pirates of the Carribean

// Get all name/value pairs as a query parm string with values URL encoded
ls_Qp = loo_Ht.ToQueryString()
Write-Debug ls_Qp

// Result:
// color=blue&name=Jack%20Sparrow&fruits=apples%26oranges&txt=this%20is%20a%20test&movie=Pirates%20of%20the%20Carribean


destroy loo_Ht
destroy loo_Keys