Forums › Forums › SIMPOL Programming › PPCS instead of SBME in appframework application
- This topic has 24 replies, 2 voices, and was last updated 10 years, 3 months ago by JD Kromkowski.
- AuthorPosts
- August 25, 2013 at 8:07 pm #198JD KromkowskiParticipant
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
August 28, 2013 at 3:13 pm #2293MichaelKeymasterOn 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 ifif 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 ifIn 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
September 2, 2013 at 7:17 pm #2294JD KromkowskiParticipantNot 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, 120000000From 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: 30000The 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
>
>September 2, 2013 at 7:44 pm #2295JD KromkowskiParticipantOn 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?September 3, 2013 at 5:43 pm #2296JD KromkowskiParticipantOn 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.September 5, 2013 at 8:07 pm #2298MichaelKeymasterOn 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
September 5, 2013 at 8:10 pm #2297MichaelKeymasterOn 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
September 6, 2013 at 3:35 pm #2299JD KromkowskiParticipantOn 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 tablesI 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 objectppcstype1
ppcstype = a datasource object
? = a table object
ppcstype1file = a ? object
ppcstype1record = a record object
ppcstype1field = a field object
ppcstype1index = an index objectSeptember 6, 2013 at 3:46 pm #2300JD KromkowskiParticipantOn 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
September 9, 2013 at 10:35 am #2302MichaelKeymasterOn 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 objectClose. 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 objectCiao, Neil
September 9, 2013 at 10:37 am #2303MichaelKeymasterOn 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
September 9, 2013 at 1:53 pm #2306JD KromkowskiParticipantThank 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?September 9, 2013 at 7:31 pm #2308MichaelKeymasterOn 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
September 10, 2013 at 2:52 pm #2309JD KromkowskiParticipantWell, 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.September 10, 2013 at 4:01 pm #2310JD KromkowskiParticipantOn 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
- AuthorPosts
- You must be logged in to reply to this topic.