Skip to content

PPCS instead of SBME in appframework application

Forums Forums SIMPOL Programming PPCS instead of SBME in appframework application

Viewing 15 posts - 1 through 15 (of 25 total)
  • Author
    Posts
  • #198
    JD Kromkowski
    Participant

    This part got a bit lost in discussion about txfactor. So what does look like if I want run an appframework application For example, in a SBME version I have this: src =@ me.opendatasource(“sbme1”, SDataDir + “/employee.sbm”, appw, error=e) if src =@= .nul wxmessagedialog(appw.w, “Error opening the employee.sbm file”, sAPPMSGTITLE, “ok”, “error”) else t =@ appw.opendatatable(src, “EMPLOYEE”, error=e) If I wanted to run this a multi-user application, I know “sbme1” gets changed to “ppcstype1”, but I’m confused about the string to be use for string source applicationvar.opendatasource ( application me, string sourcetype, string source, type(appwindow) appw, string username, string password, integer retry, integer timeout, integer error ) For example, where I know my IP Address of Network Storage device is something like “10.1.10.22” Would it be? src =@ me.opendatasource(“10.1.10.22:4000” + SDataDir + “/employee.sbm”, appw, error=e) Or do I have to use “?” in there. src =@ me.opendatasource(“10.1.10.22:4000?” + SDataDir + “/employee.sbm”, appw, error=e) JDK

    #2293
    Michael
    Keymaster

    On 25/08/2013 21:07, kromkowski wrote:
    > This part got a bit lost in discussion about txfactor.
    >
    > So what does look like if I want run an appframework application
    > For example, in a SBME version I have this:
    >
    > src =@ me.opendatasource("sbme1", SDataDir + "/employee.sbm", appw,
    > error=e)
    > if src =@= .nul
    > wxmessagedialog(appw.w, "Error opening the employee.sbm file",
    > sAPPMSGTITLE, "ok", "error")
    > else
    > t =@ appw.opendatatable(src, "EMPLOYEE", error=e)
    >
    > If I wanted to run this a multi-user application, I know "sbme1" gets
    > changed to "ppcstype1", but I'm confused about the string to be use for
    > string source
    >
    > applicationvar.opendatasource (
    > application me,
    > string sourcetype,
    > string source,
    > type(appwindow) appw,
    > string username,
    > string password,
    > integer retry,
    > integer timeout,
    > integer error )
    >
    >
    > For example, where I know my IP Address of Network Storage device is
    > something like "10.1.10.22"
    >
    > Would it be?
    >
    > src =@ me.opendatasource("10.1.10.22:4000" + SDataDir +
    > "/employee.sbm", appw, error=e)
    >
    > Or do I have to use "?" in there.
    >
    > src =@ me.opendatasource("10.1.10.22:4000?" + SDataDir +
    > "/employee.sbm", appw, error=e)
    >
    > JDK
    >

    Hi John,

    This is a chunk from the AddressBook application which was updated to work with both database types:

    if bUSEPPCS
    me.ppcs =@ ppcstype1.new(udpport=.nul, error=e)
    if me.ppcs =@= .nul
    wxmessagedialog(appw.w, "Error starting PPCS", sAPPMSGTITLE, "ok", "error")
    else
    src =@ me.opendatasource("ppcstype1", "127.0.0.1:4000", appw, error=e)
    if src =@= .nul
    wxmessagedialog(appw.w, "Error opening the PPCS server", sAPPMSGTITLE, "ok", "error")
    end if
    end if
    else
    src =@ me.opendatasource("sbme1", "address.sbm", appw, error=e)
    if src =@= .nul
    wxmessagedialog(appw.w, "Error opening the address.sbm file", sAPPMSGTITLE, "ok", "error")
    end if
    end if

    if src !@= .nul
    t =@ appw.opendatatable(src, "Address", error=e)
    if t =@= .nul
    wxmessagedialog(appw.w, "Error opening the 'Address' table", sAPPMSGTITLE, "ok", "error")
    else
    me.address =@ t
    ok = .true
    end if
    end if
    end if

    In a complex application I typically have a separate function for opening data sources and tables. If it has to work for both, you
    will typically have one data source per table with sbme1, but only 1 data source when using ppcstype1.

    Ciao, Neil

    #2294
    JD Kromkowski
    Participant

    Not sure I get this.

    I am running simpolserver (using gui )

    My cfg file looks like this

    [Server]
    port1=4000
    txfactor1=0
    port2=4001
    txfactor=6
    tcpport=4002
    logfilename=samplelog.txt
    bz2libdll=C:simpolprojectsppsrguisimpolserverbinbzip2.dll
    archiveroot=SIMPOL Data Backup
    backupdir=C:UsersPublicSIMPOLbackup
    title=SIMPOL Server

    [Files]
    1=M:SimpolProjectsPayroll4binemployee.sbm, 120000000
    2=M:SimpolProjectsPayroll4binwages.sbm, 120000000

    From the log I can see that I am sharing the tables

    2013.09.02-14:36:37.139000: Sharing
    M:SimpolProjectsPayroll4binemployee.sbm
    2013.09.02-14:36:37.170000: Sharing time for
    M:SimpolProjectsPayroll4binemployee.sbm: 31000
    2013.09.02-14:36:37.171000: Sharing
    M:SimpolProjectsPayroll4binwages.sbm
    2013.09.02-14:36:37.201000: Sharing time for
    M:SimpolProjectsPayroll4binwages.sbm: 30000

    The machine where the data is actually located has an IP address of

    10.1.10.11
    But using 10.1.10.11:4000 does not work.

    Then I realize that But "M:" is the mapped named, so by pure chance I
    find that if I use the IP address for the machine where I am running
    simpolserver, e.g. 10.1.10.14 I can run open up the tables on multiple
    machines on personal.

    So the first confusion, I need to sort out is when I use an "IP address"
    + a port to open a datasource what does the "IP address mean", the IP
    address of the machine running simpol server or the IP address of the
    machine where the data actually resides?

    On 08/28/13 11:13 AM, Neil Robinson wrote:
    > On 25/08/2013 21:07, kromkowski wrote:
    >> This part got a bit lost in discussion about txfactor.
    >>
    >> So what does look like if I want run an appframework application
    >> For example, in a SBME version I have this:
    >>
    >> src =@ me.opendatasource("sbme1", SDataDir + "/employee.sbm", appw,
    >> error=e)
    >> if src =@= .nul
    >> wxmessagedialog(appw.w, "Error opening the employee.sbm file",
    >> sAPPMSGTITLE, "ok", "error")
    >> else
    >> t =@ appw.opendatatable(src, "EMPLOYEE", error=e)
    >>
    >> If I wanted to run this a multi-user application, I know "sbme1" gets
    >> changed to "ppcstype1", but I'm confused about the string to be use for
    >> string source
    >>
    >> applicationvar.opendatasource (
    >> application me,
    >> string sourcetype,
    >> string source,
    >> type(appwindow) appw,
    >> string username,
    >> string password,
    >> integer retry,
    >> integer timeout,
    >> integer error )
    >>
    >>
    >> For example, where I know my IP Address of Network Storage device is
    >> something like "10.1.10.22"
    >>
    >> Would it be?
    >>
    >> src =@ me.opendatasource("10.1.10.22:4000" + SDataDir +
    >> "/employee.sbm", appw, error=e)
    >>
    >> Or do I have to use "?" in there.
    >>
    >> src =@ me.opendatasource("10.1.10.22:4000?" + SDataDir +
    >> "/employee.sbm", appw, error=e)
    >>
    >> JDK
    >>
    >
    > Hi John,
    >
    > This is a chunk from the AddressBook application which was updated to work with both database types:
    >
    > if bUSEPPCS
    > me.ppcs =@ ppcstype1.new(udpport=.nul, error=e)
    > if me.ppcs =@= .nul
    > wxmessagedialog(appw.w, "Error starting PPCS", sAPPMSGTITLE, "ok", "error")
    > else
    > src =@ me.opendatasource("ppcstype1", "127.0.0.1:4000", appw, error=e)
    > if src =@= .nul
    > wxmessagedialog(appw.w, "Error opening the PPCS server", sAPPMSGTITLE, "ok", "error")
    > end if
    > end if
    > else
    > src =@ me.opendatasource("sbme1", "address.sbm", appw, error=e)
    > if src =@= .nul
    > wxmessagedialog(appw.w, "Error opening the address.sbm file", sAPPMSGTITLE, "ok", "error")
    > end if
    > end if
    >
    > if src !@= .nul
    > t =@ appw.opendatatable(src, "Address", error=e)
    > if t =@= .nul
    > wxmessagedialog(appw.w, "Error opening the 'Address' table", sAPPMSGTITLE, "ok", "error")
    > else
    > me.address =@ t
    > ok = .true
    > end if
    > end if
    > end if
    >
    > In a complex application I typically have a separate function for opening data sources and tables. If it has to work for both, you
    > will typically have one data source per table with sbme1, but only 1 data source when using ppcstype1.
    >
    > Ciao, Neil
    >
    >

    #2295
    JD Kromkowski
    Participant

    On 08/28/13 11:13 AM, Neil Robinson wrote:
    > In a complex application I typically have a separate function for opening data sources and tables. If it has to work for both, you
    > will typically have one data source per table with sbme1, but only 1 data source when using ppcstype1.

    So there is a little gloss here that needs clarification:

    I am starting slow. I've got two tables in two separate datasources.

    employee.sbm contains EMPLOYEE table
    wages.sbm contains WAGES table.

    I am running simpolserver.

    Using personal, when I open A "datasource" which is "mapped", for lack
    of better word,by the IP address + port.

    Eg 10.1.10.15:4000

    I have lines in the cfg for each .sbm, such that I can open either or
    both of my tables. No problem.

    But do this programmatically does not appear to be so straight forward.

    I open up the "first" datasource.
    //src =@ me.opendatasource("sbme1", SDataDir + "/employee.sbm", appw,
    //error=e)

    src =@ me.opendatasource("ppcstype1", "10.1.10.15:4000", appw, error=e)

    But I am not really opening up a datasource ie the "employee.sbm". What
    I am opening up is the virtual datasource created by how the
    simpolserver works.

    Now when I next open up the table.

    t =@ appw.opendatatable(src, "EMPLOYEE", error=e)

    so that I can assign it to me app

    me.EMPLOYEE =@ t

    This works fine.

    But how do I open the next table, WAGES.

    I am not sure this is actually working.

    t =@ appw.opendatatable(src, "WAGES", error=e)

    I do not get an error, but when I eventually open my form, I only see
    data relating to the EMPLOYEE table, the WAGES don't show up.

    Even in Personal when I open my forms, I only get the master table data,
    the linked data in the other table is not there.

    So do I have to actually create and save the form using ppcstype
    datasource and table? Is that where the problem lies?

    #2296
    JD Kromkowski
    Participant

    On 09/02/13 3:44 PM, kromkowski wrote:
    > So do I have to actually create and save the form using ppcstype
    > datasource and table? Is that where the problem lies?

    I think this is where the problem was for me. You need to create the
    forms with ppcstype datasource tables. (Or at least things work for me
    now that I've recreated forms using tables opened as ppcstype.

    Am I correct? I.e. if you want to use a form in a ppcs application (aka
    the open for SHARE) then your form has to be created (or modified) so
    that the datasource is so identified.

    compare:

    <simpoldataform1 units="pixels">
    <version>0.92</version>
    <name>Wages</name>
    <designdpi>96</designdpi>
    <datasource>
    <sourcetype>ppcstype1</sourcetype>
    <source>10.1.10.15:4000</source>
    <sdf1table>EMPLOYEE</sdf1table>
    <sdf1table master="y">WAGES</sdf1table>
    </datasource>
    etc.

    with:

    <simpoldataform1 units="pixels">
    <version>0.92</version>
    <name>Wages</name>
    <designdpi>96</designdpi>
    <datasource>
    <sourcetype>sbme1</sourcetype>
    <source>M:Program FilesSIMPOLDatawages.sbm</source>
    <sdf1table master="y">WAGES</sdf1table>
    </datasource>
    <datasource>
    <sourcetype>sbme1</sourcetype>
    <source>M:Program FilesSIMPOLDataemployee.sbm</source>
    <sdf1table>EMPLOYEE</sdf1table>
    </datasource>
    <siblinglinks>
    etc.

    #2298
    Michael
    Keymaster

    On 03/09/2013 18:43, kromkowski wrote:
    > On 09/02/13 3:44 PM, kromkowski wrote:
    >> So do I have to actually create and save the form using ppcstype
    >> datasource and table? Is that where the problem lies?
    >
    > I think this is where the problem was for me. You need to create the
    > forms with ppcstype datasource tables. (Or at least things work for me
    > now that I've recreated forms using tables opened as ppcstype.
    >
    > Am I correct? I.e. if you want to use a form in a ppcs application (aka
    > the open for SHARE) then your form has to be created (or modified) so
    > that the datasource is so identified.
    >
    > compare:
    >
    > <simpoldataform1 units="pixels">
    > <version>0.92</version>
    > <name>Wages</name>
    > <designdpi>96</designdpi>
    > <datasource>
    > <sourcetype>ppcstype1</sourcetype>
    > <source>10.1.10.15:4000</source>
    > <sdf1table>EMPLOYEE</sdf1table>
    > <sdf1table master="y">WAGES</sdf1table>
    > </datasource>
    > etc.
    >
    > with:
    >
    > <simpoldataform1 units="pixels">
    > <version>0.92</version>
    > <name>Wages</name>
    > <designdpi>96</designdpi>
    > <datasource>
    > <sourcetype>sbme1</sourcetype>
    > <source>M:Program FilesSIMPOLDatawages.sbm</source>
    > <sdf1table master="y">WAGES</sdf1table>
    > </datasource>
    > <datasource>
    > <sourcetype>sbme1</sourcetype>
    > <source>M:Program FilesSIMPOLDataemployee.sbm</source>
    > <sdf1table>EMPLOYEE</sdf1table>
    > </datasource>
    > <siblinglinks>
    > etc.
    >

    Hi John,

    You can do this if you wish, I tend to stick with tables opened via SBME. The only reason this is working for you currently is it
    is using the stored data source info to retrieve the table. It will fail if you deploy it on a different architecture.

    In your previous post you wanted to know how to open the second table. You do it just like you do the first, using the same data
    source. See my response there.

    Ciao, Neil

    #2297
    Michael
    Keymaster

    On 02/09/2013 20:44, kromkowski wrote:
    > On 08/28/13 11:13 AM, Neil Robinson wrote:
    >> In a complex application I typically have a separate function for opening data sources and tables. If it has to work for both, you
    >> will typically have one data source per table with sbme1, but only 1 data source when using ppcstype1.
    >
    > So there is a little gloss here that needs clarification:
    >
    > I am starting slow. I've got two tables in two separate datasources.
    >
    > employee.sbm contains EMPLOYEE table
    > wages.sbm contains WAGES table.
    >
    > I am running simpolserver.
    >
    > Using personal, when I open A "datasource" which is "mapped", for lack
    > of better word,by the IP address + port.
    >
    > Eg 10.1.10.15:4000
    >
    > I have lines in the cfg for each .sbm, such that I can open either or
    > both of my tables. No problem.
    >
    > But do this programmatically does not appear to be so straight forward.
    >
    > I open up the "first" datasource.
    > //src =@ me.opendatasource("sbme1", SDataDir + "/employee.sbm", appw,
    > //error=e)
    >
    > src =@ me.opendatasource("ppcstype1", "10.1.10.15:4000", appw, error=e)
    >
    > But I am not really opening up a datasource ie the "employee.sbm". What
    > I am opening up is the virtual datasource created by how the
    > simpolserver works.
    >
    > Now when I next open up the table.
    >
    > t =@ appw.opendatatable(src, "EMPLOYEE", error=e)
    >
    > so that I can assign it to me app
    >
    > me.EMPLOYEE =@ t
    >
    > This works fine.
    >
    > But how do I open the next table, WAGES.
    >
    > I am not sure this is actually working.
    >
    > t =@ appw.opendatatable(src, "WAGES", error=e)
    >
    > I do not get an error, but when I eventually open my form, I only see
    > data relating to the EMPLOYEE table, the WAGES don't show up.
    >
    > Even in Personal when I open my forms, I only get the master table data,
    > the linked data in the other table is not there.
    >
    > So do I have to actually create and save the form using ppcstype
    > datasource and table? Is that where the problem lies?

    No, that is not necessary. You are on the right track. See here:

    src =@ me.opendatasource("ppcstype1", "10.1.10.15:4000", appw, error=e)
    t =@ appw.opendatatable(src, "EMPLOYEE", error=e)
    t =@ appw.opendatatable(src, "WAGES", error=e)

    The above should be all you need. The original posting I sent you shows how to write the code to handle both scenarios together,
    single user with sbme1, and multi-user with ppcstype1. That way you can start the program with an ini file entry that decides
    where the database is and how to open it, and don't have to change the code.

    Ciao, Neil

    #2299
    JD Kromkowski
    Participant

    On 09/05/13 4:07 PM, Neil Robinson wrote:
    > I tend to stick with tables opened via SBME.

    I don't understand what you mean by this.

    I have been writing single user application as a way to learn SIMPOL.
    I've therefore been only using sbme1 datasources and tables

    I am now ready to implement multi-user applications. Obviously, I will
    now need to use simpolserver and ppcstype1.

    Before, I get down to nitty gritty, perhaps I need a conceptual
    refresher. (I never used ppcs with SB). I have it working sort of
    although my reporting functions seem to fall down. But first:

    Maybe I should start with understanding the apparent asymmetry:

    sbme1

    sbme1 = a datasource object
    sbme1table = a table object
    sbme1record = a record object
    sbme1field = a field object
    sbme1index = an index object

    ppcstype1

    ppcstype = a datasource object
    ? = a table object
    ppcstype1file = a ? object
    ppcstype1record = a record object
    ppcstype1field = a field object
    ppcstype1index = an index object

    #2300
    JD Kromkowski
    Participant

    On 09/05/13 4:10 PM, Neil Robinson wrote:
    > No, that is not necessary. You are on the right track. See here:
    >
    > src =@ me.opendatasource("ppcstype1", "10.1.10.15:4000", appw, error=e)
    > t =@ appw.opendatatable(src, "EMPLOYEE", error=e)
    > t =@ appw.opendatatable(src, "WAGES", error=e)

    I had figured this part. In fact, this is what I was doing all alon,
    except my forms were only opening the first master table, the data in
    the detailblocks was not showing at all! So I thought perhaps I was not
    correctly opening the additional tables.

    JDK

    #2302
    Michael
    Keymaster

    On 06/09/2013 16:35, kromkowski wrote:
    > On 09/05/13 4:07 PM, Neil Robinson wrote:
    >> I tend to stick with tables opened via SBME.
    >
    > I don't understand what you mean by this.

    The dataform1 system is designed just like Superbase. If the database table required by a form is already open, regardless of
    whether the database tables is volatile, opened using PPCS, etc. then that table will be used by the form, and the embedded
    location of the table will be ignored. So I usually use sbme1 sources for my forms, since I don't need to worry about whether the
    server is running or not when I want to work on them in the Form Designer.

    > I have been writing single user application as a way to learn SIMPOL.
    > I've therefore been only using sbme1 datasources and tables
    >
    > I am now ready to implement multi-user applications. Obviously, I will
    > now need to use simpolserver and ppcstype1.

    Sure.

    > Before, I get down to nitty gritty, perhaps I need a conceptual
    > refresher. (I never used ppcs with SB). I have it working sort of
    > although my reporting functions seem to fall down. But first:
    >
    > Maybe I should start with understanding the apparent asymmetry:
    >
    > sbme1
    >
    > sbme1 = a datasource object
    > sbme1table = a table object
    > sbme1record = a record object
    > sbme1field = a field object
    > sbme1index = an index object
    >
    > ppcstype1
    >
    > ppcstype = a datasource object
    > ? = a table object
    > ppcstype1file = a ? object
    > ppcstype1record = a record object
    > ppcstype1field = a field object
    > ppcstype1index = an index object

    Close. the ppcstype1 object represents a client UDP socket on your machine through which you will access one or more IP
    address:port combinations to open database tables. We use the IP address and port number as a data source for ppcstype1, but we
    pass the ppcstype1 object as well, since it is required for opening. You only need one ppcstype1 object for all data sources of
    that type. This differs from Superbase where we used one for each target address.

    ppcstype1 + IP:port = a datasource object
    ppcstype1file = a table object (this was early days so the Superbase terminology was used)
    ppcstype1record = a record object
    ppcstype1field = a field object
    ppcstype1index = an index object

    Ciao, Neil

    #2303
    Michael
    Keymaster

    On 06/09/2013 16:46, kromkowski wrote:
    > On 09/05/13 4:10 PM, Neil Robinson wrote:
    >> No, that is not necessary. You are on the right track. See here:
    >>
    >> src =@ me.opendatasource("ppcstype1", "10.1.10.15:4000", appw, error=e)
    >> t =@ appw.opendatatable(src, "EMPLOYEE", error=e)
    >> t =@ appw.opendatatable(src, "WAGES", error=e)
    >
    > I had figured this part. In fact, this is what I was doing all alon,
    > except my forms were only opening the first master table, the data in
    > the detailblocks was not showing at all! So I thought perhaps I was not
    > correctly opening the additional tables.
    >
    > JDK
    >

    If you use appwindow.openformdirect() to open your forms, then that function will take care of passing all the important
    information through to the opendataform1() command, such as data sources, tables, defaults, locales, etc.

    Ciao, Neil

    #2306
    JD Kromkowski
    Participant

    Thank you for your responses, I think perhaps I am getting down to where
    the problem is.

    Does openformdirect() presuppose that all of the tables you plan to use
    are in 1 datasource?

    Right now I have two .sbms.

    One called employee.sbm which includes one table called EMPLOYEE.
    (apart from the systables).
    And one called wages.sbm which includes one table called WAGES.

    I have created a test form (TestForm1) which uses these two tables
    including detailblock. The datasource entries look like this:

    <datasource>
    <sourcetype>sbme1</sourcetype>
    <source>M:SimpolProjectsPayroll4binemployee.sbm</source>
    <sdf1table master="y">EMPLOYEE</sdf1table>
    </datasource>
    <datasource>
    <sourcetype>sbme1</sourcetype>
    <source>M:SimpolProjectsPayroll4binwages.sbm</source>
    <sdf1table>WAGES</sdf1table>
    </datasource>
    <childlinks>
    <sdf1link id="1">
    <sourcefield>FullName</sourcefield>
    <sourcetable>EMPLOYEE</sourcetable>
    <targetfield>FullName</targetfield>
    <targettable>WAGES</targettable>
    </sdf1link>
    </childlinks>

    First, just using Personal to test

    Simpolserver NOT running.

    1. I open TestForm1.sfx. No problem.

    Simpolserver RUNNING.

    1. I open TestForm1.sfx (without first opening datasource or table.
    Error 3 for both tables.

    2. I first open ppcstype1 datasource (using appropriate ip address and
    port) AND I open both tables EMPLOYEE and WAGES. Now, I try to open
    TestForm1.sfx. No errors, BUT only the mastertable data shows!

    Before, I go through the hoops of jamming EMPLOYEE and WAGES into one
    ..sbm (because I am pretty sure things will work if I do that) is that
    the issue? Is this a bug, a feature or a gotcha?

    This is a simple example, involving just small two tables, but in my
    brain I am thinking that jamming 20 or 30 or more tables with 10s of
    thousands of records into one sbm is not such a good idea?

    #2308
    Michael
    Keymaster

    On 09/09/2013 14:53, kromkowski wrote:
    > Thank you for your responses, I think perhaps I am getting down to where
    > the problem is.
    >
    > Does openformdirect() presuppose that all of the tables you plan to use
    > are in 1 datasource?

    No, that has nothing to do with it. appwindow.openformdirect() will send through to opendataform1() all of the data sources that
    you have already opened, and all of the tables that you have already opened. The opendataform1() function will attempt to open any
    database table that is not in the list of table objects that it receives. To open the table if it is an sbme1 data source, it will
    first look in the current directory, and if it is not found there it will look at the whole path.

    > …snip
    > Before, I go through the hoops of jamming EMPLOYEE and WAGES into one
    > ..sbm (because I am pretty sure things will work if I do that) is that
    > the issue? Is this a bug, a feature or a gotcha?
    >
    > This is a simple example, involving just small two tables, but in my
    > brain I am thinking that jamming 20 or 30 or more tables with 10s of
    > thousands of records into one sbm is not such a good idea?

    It is definitely more efficient to keep one 1 table per sbm file, since that means it is easier to reorganize an individual table
    than if they are all in the same container file. If you have a bunch of small tables that rarely change much, you could store them
    all in one container if you felt it would be important.

    Ciao, Neil

    #2309
    JD Kromkowski
    Participant

    Well, Neil, then there is bug or there is something I am missing because
    only the mastertable data is shown in the form.

    I have Simpolserver RUNNING.

    In Personal

    I first open ppcstype1 datasource (using appropriate ip address and
    port) AND I open both tables EMPLOYEE and WAGES.

    Now, I try to open TestForm1.sfx. No errors, BUT only the mastertable
    data shows!

    This is same behavior if I do this pro grammatically. (mastertable data
    show but childtable data does not show).

    JDK

    On 09/09/13 3:31 PM, Neil Robinson wrote:
    > On 09/09/2013 14:53, kromkowski wrote:
    >> Thank you for your responses, I think perhaps I am getting down to where
    >> the problem is.
    >>
    >> Does openformdirect() presuppose that all of the tables you plan to use
    >> are in 1 datasource?
    >
    > No, that has nothing to do with it. appwindow.openformdirect() will send through to opendataform1() all of the data sources that
    > you have already opened, and all of the tables that you have already opened. The opendataform1() function will attempt to open any
    > database table that is not in the list of table objects that it receives. To open the table if it is an sbme1 data source, it will
    > first look in the current directory, and if it is not found there it will look at the whole path.

    #2310
    JD Kromkowski
    Participant

    On 09/10/13 10:52 AM, kromkowski wrote:
    > To open the table if it is an sbme1 data source, it will
    > first look in the current directory, and if it is not found there it
    > will look at the whole path.

    Yeah, this is a bug.

    If I put ALL TABLES into ONE .sbm. Then everything works.

    But if I have each TABLE in a separate .sbm, then only the mastertable
    data shows.

    JDK

Viewing 15 posts - 1 through 15 (of 25 total)
  • You must be logged in to reply to this topic.