Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Need Help with a Complex Build

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Need Help with a Complex Build

    I have a desktop application I built for a company a couple of years ago. They are very happy with the app and with Alpha 5. It has been very stable and reliable.
    As their business has grown I have made small changes for them, but really pretty simple stuff. But now they would like to add functionality that requires me to add a table to the database, add a field to an existing table, make several changes to screens, and add a new report.
    I am using the internal Alpha 5 database.
    In the past I have had them send me that latest backup, made the changes he want, then build the changes on their machine so that no data was lost. I've used the Alpha install tool.
    These new changes will take some time, and I can't ask them to stop working for a couple of weeks while I make the changes.

    How do you handle these kinds of major changes to an existing application without losing the existing data in the database?

    #2
    Re: Need Help with a Complex Build

    One discussion here.

    http://www.alphasoftware.com/alphafo...te+application
    There can be only one.

    Comment


      #3
      Re: Need Help with a Complex Build

      I write an update script that I import into the database. The update script makes all the table changes, adds tables, and removes them. Also I send copies of the data dictionaries. Once the update script has modified all the tables it then copies the data dictionaries into the live database folder. Once complete a compact of the database some simple testing and your all done.

      Mind you prior to running the update script I make sure everyone is out of the database and that I have a good solid (able to be restored) backup.

      I document by hand all of my table changes so that I know what changes my script needs to make. Then I document by hand what forms where modified, added, or deleted. This is the same for browses, reports, letters, labels, operations and code objects. I practice the upgrade process several times during to ensure that everything works before pushing out the changes.
      Andrew

      Comment


        #4
        Re: Need Help with a Complex Build

        This is the last post in the other thread:
        I can answer the data question easily for the way I handle it when it is away from where I am.

        I do an up date with Astrum Installer(free), that starts with copying the old data to a new folder. Safe that way.
        delete all in the folder/or not
        Then install the new data tables(empty) and app
        run the app(adb) that is nothing more than appends in UDF's with autoexec to run it and the adb is the name of the normal one
        at the end of the appends, rename the proper adb files to the one that had the appends.
        explain: the real adb files are sent with a different name. Once the appends are done, the correct adb, alx, etc are renamed to the one a client will use making the update on gone.
        Operation complete.
        On a larger app this is all done in a few minutes to 1 hour(depending on data size) with no client intervention.

        Dave Mason
        All the install work is done from the installer. It is used to copy the folder to a safe place, empty the old folder and install the new files.
        All the client has to do is start the app on the "server".

        Like Andrew, I have run this several times before sending to be sure there are 0.00 errors.

        one other thing, raise the version of the adb before you send so any shadowed copies get updated on start
        Last edited by DaveM; 04-07-2015, 11:40 AM.
        Dave Mason
        [email protected]
        Skype is dave.mason46

        Comment


          #5
          Re: Need Help with a Complex Build

          I wouldn't do it that way. Far too complex.
          My approach would be;
          Get a copy of the current installation.
          Back it up.
          Make whatever changes you want locally.
          Reimport the backed up data locally.
          Test the application.
          When you are happy it all works, get the latest data from your client, import it and redeploy it using Alphainstaller as you are used to it.

          You will spend a lot of time building scripts if you go the tech route, so although this is a simple method, it works.
          See our Hybrid Option here;
          https://hybridapps.example-software.com/


          Apologies to anyone I haven't managed to upset yet.
          You are held in a queue and I will get to you soon.

          Comment


            #6
            Re: Need Help with a Complex Build

            That's pretty much how I've been doing things, but I haven't figured out how to just get just the latest data. If I take the backup, it over-writes all the code also. What am I doing wrong?

            Comment


              #7
              Re: Need Help with a Complex Build

              just get just the latest data.
              All the files with .dbf, .fpt, and .cdx extensions.
              There can be only one.

              Comment


                #8
                Re: Need Help with a Complex Build

                As Stan says, these are the files you need.
                Alternative is 2 databases, existing and new.
                Import from existing to new.
                Change layouts etc,
                Test,
                The imports can be easily created and run multiple times.

                Separate the datebases in specific folders.
                See our Hybrid Option here;
                https://hybridapps.example-software.com/


                Apologies to anyone I haven't managed to upset yet.
                You are held in a queue and I will get to you soon.

                Comment


                  #9
                  Re: Need Help with a Complex Build

                  If your user is sending you a full backup in a zip file, open it, sort it on file extension and copy their data tables to your development copy. Then in your dev backup (I would be sure to have a 2nd backup also) that has the new table changes, append their data to your modified tables and copy your modified tables back to thiers as well as any dictionary files that you have modified. Zip up their modified copy and send it back to them. And as has been stated, all you need to know is which files are data related and which are layout related. If you add new or modified scripts export them and then import them into their modified copy, test and zip. If you screw their copy up, you still have their original zip and your 2nd dev backup so you can start over!

                  Think of it this way:
                  All A files are copied B and A data only is also appended to C
                  Then C data and changed dictionaries are copied to B
                  Export the C scripts and import into B

                  A = Customer copy with current data and a zip backup

                  C = your devopment copy with modifications but old data that also has a backup

                  B = the new files with both their data and your changes.
                  Last edited by MoGrace; 04-09-2015, 02:36 AM.
                  Robin

                  Discernment is not needed in things that differ, but in those things that appear to be the same. - Miles Sanford

                  Comment


                    #10
                    Re: Need Help with a Complex Build

                    This is a different way to do it, but will require an installer like astrum installer or creative zip with batch files. I have done this before and currently do similar with updates.

                    You will need to know the path to the alpha5.exe


                    step 1
                    Installer will create a safe backup of the app in another folder

                    step 2
                    create an adb set of files to add to the data folder
                    You only need that adb to have the tables with field changes and an autoexec.
                    The adb will add or change the table structures however you need

                    step 3
                    installer will place all changed table support files, adb files, and sets into the app folder
                    start the app again with the
                    new adb file

                    This way, actual data is not touch, but is saved, changes are made and reset.
                    There are other steps that can be made as well.

                    When you make an install with an installer, you can also make another and then include the 2 installs into one main installer.
                    example: I can create and up date to the application, then create one with other updates, then create a runtime update. That is 3? Then create the main one that has all three inside. In this scenario, the combo will just install the 3 installers into something like c:\temp\installer and can then run whichever you need run first.

                    Hope this helps

                    Hint: I am currently doing similar with a client. It helps that the new app is going in a different folder and that someone there is knowledgeable.
                    step1 installer places empty-of-data in new folder
                    client starts app that does about 1 hour of appends and other - notifies user is is done ( it is a large app)
                    step2 installer install all files to same folder except dbf, fpt.
                    user starts app and runs db compact. This is needed because of cdx files for one thing.
                    User restarts app and it is ready to go.
                    step3 optionally a new runtime update/install.

                    Note: The runtime I send also puts folder shortcuts and a shortcut to the exe that runs the application with custom icon built in. All on the desktop.

                    Others may do it different, but I need solid consistency in everything. The above steps could be set to complete automation if it was needed.
                    Last edited by DaveM; 04-09-2015, 11:05 AM.
                    Dave Mason
                    [email protected]
                    Skype is dave.mason46

                    Comment


                      #11
                      Re: Need Help with a Complex Build

                      First of all, is the company a single user? If it is, follow the previous recommendations.

                      If the company is using a single person or multiple persons, I would recommend A5 V11 runtime.
                      Install runtime on the users computers.

                      You would need a reliable computer not used by employees (Only by you.) as a storage device on thier local LAN.
                      Install A5 V11 developer on it. Also install Team Viewer (Free) as personal user. This allows you a virtual desktop to run
                      the storage computer remotely. Copy all the A5 files to your developer / storage / working computer.

                      At this point I will stop. There is some set ups to do. Installing software etc...

                      If you need more help Email me [email protected]

                      Comment


                        #12
                        Re: Need Help with a Complex Build

                        this sounds way too complicated
                        Astrum? Alphainstaller? - unnecessary

                        1. be sure you have a copy of their current database
                        2. Add and changes fields in tables as necessary
                        3. make changes to forms, reports, etc. as necessary
                        4. put a script in the autoexec that will check respective tables for the fields you changed or added, and if they do not exist, add them. And you may change field widths, add tables, etc.

                        make a copy of your changed adb folder
                        remove all dbf's, fpt's, amd cdx's

                        send it to the client - make a backup of the client's folder, and then paste the contents of what you sent and run it.
                        the autoexec script will fix the tables

                        Peter Wayne many years ago wrote a funny story of a guy who had an app for 600 pizza parlours, and needed to update all of them. Since then Alpha has added many new features that make it easy - but this presumes you are fluent in xbasic.
                        Last edited by martinwcole; 08-05-2015, 12:08 AM.
                        Cole Custom Programming - Terrell, Texas
                        972 524 8714
                        [email protected]

                        ____________________
                        "A young man who is not liberal has no heart, but an old man who is not conservative has no mind." GB Shaw

                        Comment


                          #13
                          Re: Need Help with a Complex Build

                          but this presumes you are fluent in xbasic.
                          and/or can find and read the help files
                          Dave Mason
                          [email protected]
                          Skype is dave.mason46

                          Comment


                            #14
                            Re: Need Help with a Complex Build

                            Just curious. Why didn't Stan's Post #2 end this thread? Virtually everything was in the link he provided.

                            Well, I'm not sure this was in that link: There are other options for when a field is added to a table. If complex xbasic stuff for adding fields is too much for you, you could use temp tables, appends, renaming tables, etc. to deal with added fields, none of which would require much (if anything) in the way of hard coded xbasic. To Martin's point, in all my years using Alpha Four and Alpha Five (almost 30 years) and hundreds if not thousands of times dealing with application changes, I have NEVER used an installer for changes of any kind. NEVER. Not that you can't, and not that doing it that way wouldn't be wonderful, but it is far from necessary. Neither are redundant threads.

                            Read the link in Post # 2!

                            Raymond Lyons

                            Comment


                              #15
                              Re: Need Help with a Complex Build

                              I suppose it depends on the particular issues involved.

                              60 tables changing almost all field names, some types, some sizes, etc. adding another 25 tables, modifying sets or creating. every, form, report, etc. changed. Totally remote for 40 users.

                              I will mostly use the installer for my own sanity. It does not stop or start there. But can simplify.

                              The installer I use can do a backup for me quickly so I do not have to rely on maybes. Clear/create whatever folder(s) I need Install a new/old app. Then use alpha with prebuilt appends to get the data over from that backup, the change the adb files. It is done very quickly.

                              1 table, a couple fields, a set? Installer is not needed.
                              Last edited by DaveM; 08-06-2015, 02:06 PM.
                              Dave Mason
                              [email protected]
                              Skype is dave.mason46

                              Comment

                              Working...
                              X