Skip to content

JD Kromkowski

Forum Replies Created

Viewing 14 posts - 271 through 284 (of 284 total)
  • Author
    Posts
  • in reply to: Error 3, two windows with forms using same database? #1748
    JD Kromkowski
    Participant

    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?

    in reply to: Error 3, two windows with forms using same database? #1746
    JD Kromkowski
    Participant

    ok back to drawing board. is there a conversion app(in simpol or
    elsewhere) that converts sbme table to ppcs table?

    in reply to: OLE example #1745
    JD Kromkowski
    Participant

    > 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.

    in reply to: Error 3, two windows with forms using same database? #1744
    JD Kromkowski
    Participant

    OK, 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 application

    I 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

    in reply to: OLE example #1741
    JD Kromkowski
    Participant

    I'm pretty sure it is correct. I can google for code as well as the next
    fellow.

    in reply to: Error 3, two windows with forms using same database? #1739
    JD Kromkowski
    Participant

    Neil 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 = 0

    w1 =@ 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 choose

    dataform1 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 function

    function 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 function

    As 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.

    in reply to: OLE example #1740
    JD Kromkowski
    Participant

    OK. 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.

    in reply to: Error 3, two windows with forms using same database? #1646
    JD Kromkowski
    Participant

    sorry about the funky formatting.

    in reply to: Tables-Date Field #1738
    JD Kromkowski
    Participant

    Neil 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, Neil

    I 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.

    in reply to: Import #1737
    JD Kromkowski
    Participant

    Neil 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.

    in reply to: Import #1733
    JD Kromkowski
    Participant

    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.

    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, etc

    in reply to: save as dataform1 program #1710
    JD Kromkowski
    Participant

    Obviously, the solution is more complicated, because I am not sure how to
    actually handle the parameters for

    link.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.

    in reply to: Detail Blocks #1732
    JD Kromkowski
    Participant

    First, 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.

    in reply to: Detail Blocks #1550
    JD Kromkowski
    Participant

    Neil 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.

Viewing 14 posts - 271 through 284 (of 284 total)