Forum Replies Created
- AuthorPosts
- JD KromkowskiParticipant
NR: If you have started it running as a server, then you can't open it as a
file. You have to open it using the server address. In the config file
it will tell you what the port number is (the default is port 4000). In
Personal you switch to ppcs as the type, and in the box you would put
127.0.0.1:4000.JDK: Well, now I get Error 10.
This is what my sample.cfg looks like:
[Server]
port1=4000
txfactor1=0
port2=4001
txfactor=6
tcpport=24000
logfilename=samplelog.txt[Files]
1=C:simpolutilitiessimpolserveradrb.sbm,240000000
2=C:SIMPOLDataPayroll.sbm,240000000
3=C:SIMPOLDatawages.sbm,240000000***************
First, I really don't understand what txfactor1, txfactor, tcpport mean.
Should I also have a line?
port3=4003
for the "wages.sbm
And is this what the command line is supposed to look like:
C:SIMPOLbinsmpw1_32.exe simpolserver.smp sample.cfg
Or do I have to be more explicit about where simpolserver.smp and
sample.cfg are located.Do I run this from windows RUN? Or do I run this from someplace in IDE?
JD KromkowskiParticipantok back to drawing board. is there a conversion app(in simpol or
elsewhere) that converts sbme table to ppcs table?JD KromkowskiParticipant> Try it then from Superbase, does it work? Or from Excel. The first step
> is making sure it works at all. I have had no end of support calls when
> I was at Superbase complaining that Superbase wasn't working, only to
> discover the actual problem was not a part of Superbase at all, it would
> turn out to be something totally unrelated, but because they were trying
> it from Superbase, Superbase was broken.Yes, this is the problem where is it broken?
First, am I doing something wrong. I've always use DDE rather OLE; so it
certainly could be me.Second, I suppose if your OLE2Excel example worked without a hitch (as it
does is SB3); I would have presumed that I should first look for the
problem to be with WP. But as your OLE2Excel example didn't work
correctly. That puts Simpol into play as a source of problem.Third, maybe the problem is on WP end.
If someone could get the Excel example working completely AND give an
example using some other application "WORD" maybe, then I would know that
I need to search for the problem within my capacities and/or with WP.JD KromkowskiParticipantOK, there are obviously things I didn't understand about the difference
between SBME and PPCS data sources. And as I use SB2 rather than SB3, I
also had some misunderstanding about what was already possible using MDI
mode.1. I thought SBME was a multi-user datasource and the PPCS was a multiuser
datasource that you use if you are creating internet application. So I
didn't appreciate that when you open an SBME file (either directly or
indirectly by opendataform1()that the file was being opened EXCLUSIVELY.
I didn't think that was how SIMPOL was going to work. I thought
everything was naturally opened in SHARE (not correct term I know) mode,
and that you would have to LOCK a particular record if you were editing
and storing. I am intending to recreate multi-user applications that I
currently run in SB2. Should I be using PPCS instead of SBME?2. I don't use MDI mode (because I use SB2), but I was under the mistaken
opinion that MDI mode allowed exactly what my example tries to do. (Of
course, the only reason I am trying to do this because I am trying to do a
work around to the lack of detailblocks more than one line and the fact
that the data aware grid is fairly useless visually and because it is not
sortable.In SB2 (or SB3), I can open up second instance of Superbase with a Form
that uses a file(table) already being used by a Form in the first instance
of Superbase.A. I only open files in share mode anyway.
B. I equated the first instance of SB as wxwindow w1 and the second
instance of SB as wxwindow w2.NR:
> This has nothing to do with RAD, this has to do with an inability to
> open a database container exclusively in more than one place in the
> code.I am obviously not as clear as I intend. When I say your proposed
solution is not RAD. I am making a philosophic statement not a technical
one. I mean than it is not in keeping with principles of Rapid
Application Development, which after all is the sine qua non of this
product.NR:
> I grant you, that makes it more complicated to work with
> single-user databases, but we will provide the SIMPOL Personal API route
> to make that easier for those who wish to travel that direction.Here again I am/was confused. I am not really interested per se in single
user databases. I thought the difference was that
PPCS == internet, and
SBME == desktop applicationI presumed that both were multi-user. Is there someplace in the
documentation that says this. I've reread all of PART IV and I don't see
it. Am I looking at the wrong thing?Simpol Professional says:
"# SIMPOL Micro Engine â single- and multi-user database engine"
"# 3-user Server license for testing multi-user applications with the
multi-user database engine"Isn't Simpol Micro Engine the same thing as SBME? But I see elsewhere when
I search your site discussion of SDPT.So if I use PPCS rather than SBME then everything will be ok?
NR:> This is a bit unrealistic. The form design assumes that it can open the
> data sources, but it can cater for not being able to do so. If you try
> to open the same database exclusively in two different view windows in
> Superbase it would also fail with the message that the file is already
> open for exclusive access.Of course, you have to be able to open the datasources. But here I was
obviously confused about exclusive access. I presumed everything was
shared access unless things were locked or during commit().JDK
JD KromkowskiParticipantI'm pretty sure it is correct. I can google for code as well as the next
fellow.JD KromkowskiParticipantNeil Robinson wrote:
> If you are opening a form and allowing it to open the tables, and if you
> are using the sbme1 method of opening them, then it will fail. The way
> around this is to open the tables first, and then pass in a valid dring
> of datasourceinfo objects, plus a valid array of tbinfo objects. This
> allows the form to use the existing tables and datasources rather than
> needing to open them again. This will be part of a more comprehensive
> example that I am currently working on.Well, I opening a form by using
f =@ opendataform1(filename, error=e, errortext=errtext)
What you are suggesting sounds so complicated.
I should be able to open any form using opendataform1 and put it into any
window that has been created, without all that rigamorale.Eg, if this can't work in a straightforward way then this really doesn't
seem to be RAD. Here is about the simplest example I can think of to test
whether this is working correctly. I've left out so tidying tests to see
if form and or window was appropriately created.function main()
// open four windows
wxwindow w1,w2,w3,w4
integer iErrnum; iErrnum = 0w1 =@ wxwindow.new(0, 0, 320, 240,
captiontext="Main test window",
error=iErrnum)w2 =@ wxwindow.new(320, 0, 320, 240,
captiontext="Second test window",
error=iErrnum,menubutton=.false,
border="simple",
backgroundrgb=0xFFFFFF,
vscrollbar=.true,
hscrollbar=.true)w3 =@ wxwindow.new(0, 240, 320, 240,
captionbar=.false,
error=iErrnum,
vscrollbar=.true)w4 =@ wxwindow.new(320, 240, 320, 240,
captiontext="Fourth test window",
error=iErrnum,
maxbutton=.false,
backgroundrgb=0xC0C0C0)w1.onvisibilitychange.function =@ quit
w2.onvisibilitychange.function =@ quit
w3.onvisibilitychange.function =@ quit
w4.onvisibilitychange.function =@ quit// open four forms
// IT SHOULD NOT MATTER what forms you choosedataform1 f1,f2,f3,f4
integer e; e = 0
string cd, filename, result, errtext
cd = getcurrentdirectory()
filename = ""
result = ""
errtext =""wxfiledialog(.nul,
"Pick a form to show",
cd,
"",
"*.sxf",
"open,mustexist",
filename,
result)
f1 =@ opendataform1(filename, error=e, errortext=errtext)wxfiledialog(.nul,
"Pick a form to show",
cd,
"",
"*.sxf",
"open,mustexist",
filename,
result)
f2 =@ opendataform1(filename, error=e, errortext=errtext)wxfiledialog(.nul,
"Pick a form to show",
cd,
"",
"*.sxf",
"open,mustexist",
filename,
result)
f3 =@ opendataform1(filename, error=e, errortext=errtext)wxfiledialog(.nul,
"Pick a form to show",
cd,
"",
"*.sxf",
"open,mustexist",
filename,
result)
f4 =@ opendataform1(filename, error=e, errortext=errtext)// Put the forms into the windows
f1.setcontainer(w1)
f1.selectfirst()f2.setcontainer(w2)
f2.selectfirst()f3.setcontainer(w3)
f3.selectfirst()f4.setcontainer(w4)
f4.selectfirst()// Wait for something to happen
wxprocess(.inf)
end functionfunction quit(wxwindow me)
// test for what window is being shut
// Let me say here that I think wxprocess()
// should be a method for a
// particular window as in w1.wxprocess() and w1.wxbreak()wxbreak()
end functionAs far as the "example you are working on", You should just make the
personal code available. I'm really not sure what you are trying to
protect. It seems like the short term over the long term.JD KromkowskiParticipantOK. I take it that there is no documentation for this, yet.
I tried to do OLE with WordPerfect.
I get warning
cannot get CLSID from ProgID
and error 529.
I don't know enough (since heretofore it was always easier to use DDE) to
know whether the trouble is me, or WP or Simpol.JD KromkowskiParticipantsorry about the funky formatting.
JD KromkowskiParticipantNeil Robinson wrote:
> Lawrence Ward wrote:
>> I tried entering data into a newly created table with a date field
>> and SIMPOL Personal shut down. It's had the same response twice in a
>> row. It was the first record of my table.
>>
>
> Hi Lawrence,
>
> Can you give me more information here? When you entered the date, what
> format did you enter it in? Also, what format is recorded in the table
> definition for the date field? I have had reports of this before, but
> have never been able to reproduce the problem, so any inforamtion you
> can give me would help, thanks.
>
> Ciao, NeilI thought my post here, showed how to create the issue
and how to fix it by adding index to date field saving and then removing
index to date field and saving all in the modify file dialog.Newsgroups: sbng.programming.general
Date: Apr 24 2009 17:11:12********
I create a new sbm and table.Two fields.
Name String
Dates Date
No indexes.I add a record but only put something in Name field and then Data|Save
no problem.I then try to change the record by putting cursor in date field and
adding a date. Shut down.I reopen Personal. I open table. I add index to date field. Save. I
remove index to date field. And save.Now the table works and doesn't shut down on dates.
Consider this which I also been able to consistently duplicate.
I create a table with only ONE Field as Date type. No problems whether
or not I add index.I create a table with first field a String and Second field a Date. Now
I get the same problems.This is how I am creating the problem.
File|New>Table (doesn't matter whether you create a new .sbm datasource
or add a table to existing datasource.Then you get the SIMPOL Desktop Table Definition (might want to change
"Desktop" in the caption; in fact, check out menu titles to entry
dialogs that appear in this sequence).click Add Field button.
Enter "Name" and hit enter. It will by default be a string.
click Add Field button.
Enter "Dates" and hit enter. It will also by default be a string.
So click on grid cell for Data Type and change to "date". I then click
on next grid just to get cursor out of that space.
Then click on Save button.
Then click on Close button.Now you will have table there. 3 fields show. Name, Dates, and
recid_ro_internal.Now Data|Add
recid increments to 000000000001
Technically, I think the cursor should be put into Name cell. (trivial)
Type your name. Hit "Enter", to move you to next field.
Type you birthdate. "Month N, 19nn", it really does matter what format
you enter because when you hit "Enter" it will shut down.Reopen Personal.
Open this offending table.
Data|Add
increment will now be 000000000002
If try to add something to that date field you'll get a shut down.Reopen Personal
Open this offending table.This time File|Modify>Table
You'll get the Table Definition.
Add index to the dates field. SAVE.
Remove the index to the dates field. SAVE
Close.Data|Add
increment now 000000000003
enter "name" in first field. ENTER to get to second field.
enter date in second field. ENTER. it will not shut down.SAVE or try to move to next or previous record, in order to get save dialog.
JD KromkowskiParticipantNeil Robinson wrote:
> JDK wrote:
>> Neil Robinson wrote:
>>> JDK wrote:
>>>> Importing causes Shutdown.
>>>>
>>> I had a similar problem with the ASCII-Delimited converter, which I
>>> have fixed in the final release. Which converter were you using?
>>>
>>> Ciao, Neil
>> The import function in personal in lastest release.
>
> Yes, I gathered that. Which format were you importing?Ascii
As to the other issues. It just seems to me that if you want new users
to use your database (SBME), then you need to make it very easy to import.FYI, for what's its worth
http://it.toolbox.com/blogs/oracle-guide/state-of-the-database-2008-desktop-databases-22900
It might be interesting to explore some of the functionality in Kirix
Strata.JD KromkowskiParticipantNeil Robinson wrote:
> JDK wrote:
>> Importing causes Shutdown.
>>
>
> I had a similar problem with the ASCII-Delimited converter, which I have
> fixed in the final release. Which converter were you using?
>
> Ciao, NeilThe import function in personal in lastest release.
I'm still not clear why it is that you don't have an import for
Dbase .dbf
Excel .xls
superbase (Your concern about password protection to me is misplaced
given the demise of SB PLC vs. the vision of having old SB users migrate
to SIMPOL)
Paradox .db
Data Interchange Format .dif
..adr and related address book formats
Sql databases .frm, .myd, etc.
Access mdb, etcJD KromkowskiParticipantObviously, the solution is more complicated, because I am not sure how to
actually handle the parameters forlink.new()
which I gather is required before you do
link =@ fc.findlink(fc.table)
JDK
JDK wrote:
> I think the following declaration is not generated by the save as
> dataform1 program when there is a "link" between files created.> dataform1link link
> Consequently, the code generated like:
> link =@ fc.findlink(fc.table)
> if link !@= .nul
> fc.assignlink(link, f, error = e)> won't run.
> I am still testing this.
JD KromkowskiParticipantFirst, I don't want you to take this personally, even though I know you
have invested a ton of your "person" in this. It is business. If you
don't have customers or potential customers complaining then you might not
actually have any customers. Most customers or potential customers don't
complain, they just drift away. If no is complaining or posting here, then
you should be worried.NR: > Unfortunately, the grid control we are using doesn't provide for
buttons
> being inserted into the control. The only way to do sorting is via a
> popup menu.JDK: I perhaps was not clear. We one creates the data-aware grid, one
selects the table and the fields and can make some minor adjustments.
(column labels, font, whether column are sizeable, etc.) It is at that
point that one should be able to sort the data that is being stuffed into
the grid. All that is required is setting the correct index. Unless the
problem is that the current solution must set the index to the linking
field for the right data to be put into data-aware grid.For example, lest say a have a Master file for a particle Matter and then
I have another Child file for the Dates associated with that Matter. So
"Dates" get put into the array which correspond to the particle Matter.
But it does little good if those dates aren't in the grid arranged in date
order.NR:
> We *are* looking at another control that is more like a
> listbox, but with columns and clickable headers, but until that is
> wrapped, we will have to live with the standard grid.If you go back through the posts about detailblocks; you will find I
indicated that I have used Request 25 and or a Dialog with a Listbox as a
poor man's "popup detailblock" (which are obviously orderable), and I
wondered whether something like that was what was intended path.You advised that your Drilldown thing was the better solution and that
detailblocks were going to be implemented. The problem has always been
WHEN.I am interested in avoid "the Perfection is the Enemy of the Good"
problem. I am for Rapid Application Development WITH continuous and
incremental improvement.If it would have been, as you say, "been fairly trivial to give you
single-level detail blocks", then why haven't you. As an interim working
solution, while you sort out all of the "advanced" features.It doesn't matter to me, and I doubt to anybody, that what you release
later MIGHT break the "trivial single-level detail blocks". If your
subsequent improvement is better it will be trivial for the
developer/would be programmer to go click click click and redo the form
even from scratch with the advanced stuff.What you indicated in October 2008 was the the detailblock stuff had been
coded and it was just a matter of the UI part. So show us the code so that
we can at least do it programmatically while the perfect UI stuff is being
fine tuned.NR: > As for the thing
> you recently posted, which is little more than a basic table view,JDK: Which quite frankly is all you data-aware grid is. Except mine is
sortable!NR: > this
> one is generic, linkable to other tables that themselves are controlled
> by their own links, can support additional linked columns within the
> block, etc.JDK: Of course, yours is generic. What I posted was a mess of spaghetti
and not generic. What got posted was a couple of hours worth of time that
represents an ideogram. I don't make my money by writing programs, I make
my money by going to court and negotiating on behalf of my clients.> Be my guest. If it were that simple I would have released them by now.
> Don't forget that Superbase detail blocks support both rows and columns,
> can be nested up to 8 levels deep, can have linked tables, each block
> can be sorted ascending or descending, can have scroll bars (right or
> left), and will need to support potentially thousands or even millions
> of dependent records efficiently. They can also be unlinked. What do you
> intend to do with the records that have been changed?JDK: First, I don't need 8 freaking levels deep. I do need to support
thousands of records efficiently and my little experiment with a table
view (which by the way is STILL absent from this release) really showed
that when you get passed a couple of hundred records there is a time
problem of efficiently running through the records. I just don't know
enough about how to optimize this kind of thing in Simpol with the SBME
object. The lack of a direct SELECT WHERE equivalent is problematic.As to changing records, I abandoned changing detailblock records on the
form where they show up, over a decade ago. I either use an invisible
button to bring up a dialog or form masquerading as a dialog for the
record chosen, or I use a modify button to bring up a listbox or request
that allows the user to select precisely the record that they wish to
change or delete.NR:>If the form is
> locked, do you lock all the records? When do you save changes? If you
> don't commit them early, what happens when a changed record scrolls off
> the screen? How do you add new ones? How do you delete a row? How do you
> make sure it runs fast?I think I do that all now and don't even use ROW or DROW.
> I have looked at all of these issues while doing the design work, plus
> more as well. If you think you have a brilliant solution, I am all ears.
> There is probably a good reason why you have never seen detail blocks in
> any other commercial product. The design is difficult beyond belief to
> get right and have work efficiently.JDK: Yes it is difficult. So what. Customers and Potential customer don't
care about that, they have their own difficult things they do. And that
is the choice that Simpol Ltd made.But having detailblocks even one trivial level deep is what could separate
your product from the rest, it is one of the things that made SB powerful.NR:> Even the one in Superbase has
> numerous flaws that we are all aware of, such as dealing with new
> records after the first page is full, or deleting records.JDK: Of course it had flaws, but even a dingbat like me has figured a way
around them.JD KromkowskiParticipantNeil Robinson wrote:
> John Kromkowski wrote:
>
>> I was explicitly advised that detail blocks were part of this release.
>> But alas, they are not.
>
> I am a little surprised, since I am sure we specifically said that they
> would not be ready for this release, but that data-aware grids would be.Well, perhaps I am mistaken I thought I asked Rufus the question during
the conference. I'm not sure that going through the record will be of
any help at this point. You might also look at your 10/14/08 post,
which made it sound like the code was done.But you'd have to admit that even a data-aware grid that doesn't support
sorting is basically not much of a sophistication over the grid stuffing
thing I previously posting.Surely, if you revealed bit of the code you`re using to do the
data-aware grid, somebody here could whip up pretty quickly a
programatic version detailblocks, to tweek the dataform program
generated by the save as in the form designer.I may even try my hand at but it would be kind of pathetic if the lawyer
non-programmer worked it before everyone else. - AuthorPosts