|
|

Using Data Access -
From PowerBuilder 5 with Arrays
The MDMDA session object is being called from a PowerSoft PowerBuilder 5 application. This sample
includes references to an item array (12J1).
The dataset and items are defined as follows:
ITEMS:
ITEM-NO, Z6;
SALES-PERIODS, 12X6;
SALES-HISTORY, 12P12;
MISC, 12J1;
OTHER, J2;
SETS:
NAME: HISTORY, DETAIL (1/18);
ENTRY: ITEM-NO(!HISTORY-M),
SALES-PERIODS,
SALES-HISTORY,
MISC,
OTHER;
CAPACITY: 101;
END.

Declare Global Variables
-
OLEObject da
OLEObject db
OLEObject ds
string upass
Open for window
-
string t1
integer result
open (w_genapp_upass,w_genapp_frame)
da = CREATE OLEObject
result = da.ConnectToNewObject ( "MdmDA.Session" )
if result <> 0 then
MessageBox("OLE Error", "Object not created")
close ( w_genapp_frame )
return
end if
da.TraceLevel = 0
da.HostAddress = "support"
da.Port = "30002"
da.LoginUser = "mgr"
da.UserPassword = upass
da.LoginGroup = "util"
da.LoginAccount = "minisoft"
If Not da.Connect Then
MessageBox ("MDMDA Error", "Connect failed")
close ( w_genapp_frame )
return
End If
If da.LoginStatus = False Then
MessageBox ("MDMDA Error", "Login failed")
close ( w_genapp_frame )
return
End If
db = da.AddImageDBRef("MSCARD")
ds = db.AddDatasetRef("HISTORY")
If Not db.Open("MSCARD", "UTIL", "MINISOFT", 1,
"DO-ALL") Then
MessageBox ("MDMDA Error", "Open failed")
close ( w_genapp_frame )
return
End If
ds.Delimiter = ""
If Not ds.ReadSerialNext("@;") Then
MessageBox ("MDMDA Error", "readserialnext failed")
return
End If
sle_1.Text = ds.Item("ITEM-NO")
t1 = ds.Item("MISC")
sle_2.Text = t1
sle_misc_1.Text = string(integer(Mid(t1, 1, 6)),"0")
sle_misc_2.Text = string(integer(Mid(t1, 7, 6)),"0")
sle_misc_3.Text = string(integer(Mid(t1, 13, 6)),"0")
sle_misc_4.Text = string(integer(Mid(t1, 19, 6)),"0")
sle_misc_5.Text = string(integer(Mid(t1, 25, 6)),"0")
sle_misc_6.Text = string(integer(Mid(t1, 31, 6)),"0")
sle_misc_7.Text = string(integer(Mid(t1, 37, 6)),"0")
sle_misc_8.Text = string(integer(Mid(t1, 43, 6)),"0")
sle_misc_9.Text = string(integer(Mid(t1, 49, 6)),"0")
sle_misc_10.Text = string(integer(Mid(t1, 55, 6)),"0")
sle_misc_11.Text = string(integer(Mid(t1, 61, 6)),"0")
sle_misc_12.Text = string(integer(Mid(t1, 67, 6)),"0")
clicked for cb_next
-
string t1
If Not ds.ReadSerialNext("@;") Then
MessageBox ("MDMDA Error", "readserialnext failed")
return
End If
sle_1.Text = ds.Item("ITEM-NO")
t1 = ds.Item("MISC")
sle_2.Text = t1
sle_misc_1.Text = string(integer(Mid(t1, 1, 6)),"0")
sle_misc_2.Text = string(integer(Mid(t1, 7, 6)),"0")
sle_misc_3.Text = string(integer(Mid(t1, 13, 6)),"0")
sle_misc_4.Text = string(integer(Mid(t1, 19, 6)),"0")
sle_misc_5.Text = string(integer(Mid(t1, 25, 6)),"0")
sle_misc_6.Text = string(integer(Mid(t1, 31, 6)),"0")
sle_misc_7.Text = string(integer(Mid(t1, 37, 6)),"0")
sle_misc_8.Text = string(integer(Mid(t1, 43, 6)),"0")
sle_misc_9.Text = string(integer(Mid(t1, 49, 6)),"0")
sle_misc_10.Text = string(integer(Mid(t1, 55, 6)),"0")
sle_misc_11.Text = string(integer(Mid(t1, 61, 6)),"0")
sle_misc_12.Text = string(integer(Mid(t1, 67, 6)),"0")
clicked for cb_previous
-
If Not ds.Rewind Then
MessageBox ("MDMDA Error", "rewind failed")
return
End If
clicked for cb_add
-
string t1
t1 = ""
t1 = t1 + string(integer(sle_misc_1.Text),"000000")
t1 = t1 + string(integer(sle_misc_2.Text),"000000")
t1 = t1 + string(integer(sle_misc_3.Text),"000000")
t1 = t1 + string(integer(sle_misc_4.Text),"000000")
t1 = t1 + string(integer(sle_misc_5.Text),"000000")
t1 = t1 + string(integer(sle_misc_6.Text),"000000")
t1 = t1 + string(integer(sle_misc_7.Text),"000000")
t1 = t1 + string(integer(sle_misc_8.Text),"000000")
t1 = t1 + string(integer(sle_misc_9.Text),"000000")
t1 = t1 + string(integer(sle_misc_10.Text),"000000")
t1 = t1 + string(integer(sle_misc_11.Text),"000000")
t1 = t1 + string(integer(sle_misc_12.Text),"000000")
ds.WriteItem("ITEM-NO",sle_1.Text)
ds.WriteItem("MISC",t1)
sle_2.Text = t1
If Not ds.Write("@;") Then
MessageBox ("MDMDA Error", "Write failed")
return
End If
|