Forum Replies Created

Page 2 of 3
  • John Boyce

    Member
    09/19/2017 at 7:56 AM in reply to: DOCUMENT IMAGING SCANNING

    Yes, the lower end Fujitsu scanners use their own proprietary technology. We have traditionally used Fujitsu as they are very reliable, but have now switched to Epson DS series scanners and have had good success with them. They are all TWAIN compatible.

  • John Boyce

    Member
    08/28/2017 at 10:17 PM in reply to: SQL COMMAND NOT PROPERLY ENDED

    Try a space before And like this:

    ‘ And stm.STM_AUTO_KEY = ‘ + PN[‘STM_AUTO_KEY’]

    Looks like you are concatenating the ‘CNC_AUTO_KEY’ and ‘And’

  • John Boyce

    Member
    08/11/2017 at 12:22 AM in reply to: TRAINING DATABASE USER LICENSES

    Jesse,

    We had this issue a while back and the solution was to re-apply the license file to each schema. This was around Quantum 10.2, so don’t know if the same solution will work.

    John

  • Mary,

    I sent both programs to Henrik with instructions about a week ago. Henrik – did you get my emails?

    John

  • The easiest way to elimiated unwanted white space is to use the Trim function on the input string. If you still have one or more values that are larger than the size of the receiving field, add substr to the function. E.g. if application code is 30 chars in the parts master use Trim(Substr(input_field, 1, 30))

  • OK, I’ll work up some basic program documentation/instructions and send everything to Henrik. Give me a day or two.

  • John Boyce

    Member
    07/19/2017 at 11:02 AM in reply to: SQL STATEMENT TO KILL INACTIVE USERS AFTER SPECIFIC PERIOD

    We have a couple of solutions. One is a program (executable) that shows all connected sessions (similar to the function within Quantum) with a check box next to each oracle connection. You can check the box next to the session(s) you want killed and then click the kill button.

    We also have a Windows service that monitors Quantum sessions based on inactivity and kills the sessions after x minutes of inactivity. The service does other things as well (such as log the number of sessions connected every x minutes to see usage during the day). I’d be willing to share these programs with the Quantum community through the Que Group site, but we aren’t a software development company, so they come with no warranty or support.

  • John Boyce

    Member
    05/09/2017 at 8:21 AM in reply to: IMAGING/BULK EDITING

    The other solution is to leave your current image server as is and add a second one. It’s pretty simple to do and will preserve all of the previous images as they are. All new images will be added to the second server.

  • John Boyce

    Member
    05/01/2017 at 8:12 AM in reply to: EDI/ WEB SERVICES

    Yes. There is an optional EDI module that you can purchase, and you can implement Web Services through the Quantum Portal, or design it yourself.

  • You don’t need the CC Event Manager to run Oracle Events. Most everything that CC does with the Oracle Scheduler (which they call Event Manager) can be done directly through Oracle.

    Here’s a link on how to set up Scheduled Jobs using the free SQL Developer GUI.

    http://www.thatjeffsmith.com/archive/2012/01/scheduling-jobs-with-oracle-sql-developer/

    There’s a lot more documentation on the Oracle site including

    https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse.htm#i1033533

    We use it for a variety of jobs. It’s more intuitive and flexible than the Event Manager, except for the XML formatting.

  • John Boyce

    Member
    04/13/2017 at 10:00 AM in reply to: UDF MANAGEMENT

    Yes, you can, but there’s a big BUT. Depending how the fields are used on various forms you might have problems if you don’t have the Screen Scripter to make modifications. Also, every time that you run Quantum’s Dataversion it will likely erase the changes that you have made. Therefore, before each Dataversion (which is run with each version of Quantum) you would have to copy the data elsewhere, and then reinsert all of the changes after the upgrade.

    Probably not worth it in most cases, unless you automate the copy process with each upgrade.

  • John Boyce

    Member
    03/16/2017 at 8:24 AM in reply to: 2 QUESTIONS

    Tony,

    To put a watermark as background to your form, go to Pagestyle under report when in the Design phase. You can insert a jpg, pdf, etc. as the background.

    John

  • John Boyce

    Member
    03/15/2017 at 2:38 PM in reply to: READING CHECKBOX VALUES

    Brian,

    Because the CheckBox is not initially on the form at compile time it gives a syntax error in the OnClick event. This will be the case for any objects created in the OnShow. To get around it you can do something like this.

    In the FormShow

    CheckBox1 := TCheckBox.Create(Form.TabSheet1);

    CheckBox1.Parent := Form.TabSheet1;

    CheckBox1.Name := ‘CheckBox1’;

    CheckBox1.Left := 680;

    CheckBox1.Top := 424;

    CheckBox1.Width := 120;

    CheckBox1.Height := 13;

    CheckBox1.Caption := ‘Parts’;

    In the BtnOKClick

    procedure BtnOKClick(Sender: TObject);

    var

    save_string: String;

    i: Integer;

    TmpCB: TCheckBox;

    begin

    for i := 0 to Form.ComponentCount – 1 do

    if Form.Components[i] is TCheckBox then

    begin

    TmpCB := TCheckBox(Form.Components[i]);

    if TmpCB.Name = ‘CheckBox1’ then

    if TmpCB.Checked = True then

    Save_String := ‘T’

    else

    Save_String := ‘F’;

    end;

    end;

    John

  • John Boyce

    Member
    03/14/2017 at 8:20 AM in reply to: READING CHECKBOX VALUES

    You can do something like this:

    Var

    save_string: String;

    begin

    save_string := ”;

    if checkbox1.Checked = True then

    save_string := save_string + ‘T’

    else

    save_string := save_string + ‘F’;

    if checkbox2.Checked = True then

    save_string := save_string + ‘T’

    else

    save_string := save_string + ‘F’;

    UDF_001 := save_string;

  • John Boyce

    Member
    12/28/2016 at 8:05 AM in reply to: STOCK LINES WITH IMAGES

    John is correct, but you also have to include the table name in your query to get a unique selection

    Example:

    Select stm.pn, stm.description, stm.stock_line, iml.image_desc, iml.file_name

    from stock stm join image_list iml on stm.stm_auto_key = iml.source_pk

    where iml.source_table = ‘STOCK’

    and stm.pn = ‘XXX’ and stm.stock_line = 123

  • John Boyce

    Member
    10/21/2016 at 9:27 AM in reply to: HOW CAN I ADD TERMS AT THE END OF A PO?

    Leonel,

    If you set up a header clause for your Ts & Cs in the PO header and then make sure you check Show Clauses when you print the form that clause will print before the footer section. If you would want to hard code certain info into the PO form, you could modify the sub-section Header Clauses in the form, taking out the reference to the PO clauses and inserting a memo item with the text you want to print. In this case it will print every time, but you will still need to check Show Clauses, or remove the tie between the Show Clauses parameter and the Header Clause section.

    John

  • John Boyce

    Member
    08/08/2016 at 5:24 AM in reply to: MAKING FIELDS READ-ONLY

    Tony,

    Try this:

    procedure FormShow(Sender: TObject);

    var

    q: TOracleDataset;

    X: string;

    begin

    q := TOracleDataset.Create(nil);

    q.Session := Form.OCSession;

    // Get the current user who is logged in.

    q.Sql.Text:=’select QC_SC_PKG.GET_USER_NAME from dual’;

    q.Open;

    X:= q.FieldByName(‘GET_USER_NAME’).AsString;

    if ((X <> ‘TONYR’) and

    (X <> ‘BILLG’) and

    (X <> ‘JAMELLEM’) and

    (X <> ‘CHRISD’) and

    (X <> ‘CORYR’))

    then

    Form.Dataset.FieldByName(‘PNG_AUTO_KEY’).readonly:= true

    else

    Form.Dataset.FieldByName(‘PNG_AUTO_KEY’).readonly:= false;

    end;

  • John Boyce

    Member
    05/31/2016 at 9:49 AM in reply to: MERGE CONSIGNMENT CODES

    There isn’t an easy way. You would have to find all the tables that have the old consignment code auto key (cnc_auto_key) and change those records to the surviving cnc_auto_key. The tables that contain cnc_auto_key are:

    COMPANIES

    COMPANY_CONSIGNMENT

    CONSIGNMENT_CODES

    GL_TRANS

    ILS_CONS_PARAMS

    INVC_DETAIL

    LOT_COSTING_LOG

    PO_DETAIL

    PO_HEADER

    PRICES

    RC_CONTROL

    RC_DETAIL

    SA_LOG

    SO_DETAIL

    STOCK

    STOCK_RESERVATIONS

    STOCK_XFER_LOG

    WIP_AUDIT_LOG

    WO_BOM

    WO_OPERATION

    If you don’t use some of these tables, or don’t have the cnc_auto_keys that you want to eliminate in the table, you can ignore that table. After you’ve modified the records in these tables, you can delete the consignment code you don’t want. Keep in mind that your historical records will now only show the surviving code. I did this a while back using Firebird, but don’t have any code that does this in Oracle. Also, we only had a half dozen or so tables that were affected at the time.

  • We’ve written our own system that complements Quantum by extracting the base RMA info from Quantum and then allowing entry for additional fields to fulfill our requirements. It’s actually part of a larger system used for ISO certification that tracks RMAs, customer complaints and non-conforming material with more precision than Quantum allows.

  • John Boyce

    Member
    04/25/2016 at 9:47 AM in reply to: QCTL_VIEW_GL_SUMMARY

    Tony,

    You can make your own more restrictive view or one with parameters and use the view as the data source in Crystal. For example if you copy VIEW_GL_SUMMARY as MITCHELL_VIEW_GL_SUMMARY and then edit the select portion of the Query to

    FROM GL_ACCOUNT GLA, GL_FISCAL GLF, GL_PERIOD GLP

    WHERE GLA.REPLACEABLE = ‘F’ and

    GLF.SYSCM_AUTO_KEY(+)=GLA.SYSCM_AUTO_KEY and

    GLP.GLF_AUTO_KEY(+)=GLF.GLF_AUTO_KEY and

    GLF.Syscm_Auto_Key = 1 and

    glf.fiscal_end = to_date(’06/30/2016′, ‘mm/dd/yyyy’)

    GROUP BY GLA.SYSCM_AUTO_KEY, GLA.GLA_AUTO_KEY, GLA.ACCOUNT_TYPE, GLF.GLF_AUTO_KEY, GLP.GLP_AUTO_KEY

    you would restrict the results to the first company in Sys_companies and only to a particular fiscal year. You could then further restrict in Crystal. One caveat: custom views are deleted with the data version program, so keep copies to re-insert when you upgrade.

    John

  • John Boyce

    Member
    01/27/2016 at 8:39 AM in reply to: LANGUAGE OF THE TEMPLATES

    I believe that the default for MaxQ is that the Dataversion program does not delete Procedures or Functions, but does delete/update any Packages that you add or modify. We use both, and just wrote a program to recopy all Package and other metadata after running Dataversion. This requires that you have a schema containing your Packages, etc. to copy from before upgrading.

  • John Boyce

    Member
    11/12/2015 at 8:13 AM in reply to: ACCOUNTING MODULE FOR EU COUNTRIES

    We are in the U.S., but have subsidiaries in the U.K. and Australia and do our accounting for all three entities using USD as the base currency, and then convert to the local currency for governmental reporting purposes.

  • John Boyce

    Member
    10/27/2015 at 8:08 AM in reply to: SINGLE SIGN ON?

    I believe that CC said that they were going to integrate Quantum login with Active Directory with version 10.7. We are still on 10.5, but you might want to check with CC to see if this is implemented.

  • John Boyce

    Member
    10/16/2015 at 8:56 AM in reply to: NAMING UPDATE SQL STATEMENT

    It looks like stock_audit is a Firebird table that is not part of the Oracle system, so I’m assuming that you are running Firebird. It also looks like the modifications to the Stock_Audit that inserts the term ‘Unknown Update’ in the tran_type field is part of the TU_UPDATE trigger of the stock field that gets fired with each change of a stock line. You could change the result by changing the trigger. If this is what you would like to do, I would contact CC as it’s dangerous to change a trigger without full confidence of the potential results. Alternatively, you could add your own trigger to fire after CC’s, but you would need to know the auto key of the stock_audit transaction and possibly more info to make the change. Proceed with caution.

  • John Boyce

    Member
    10/15/2015 at 8:18 AM in reply to: NAMING UPDATE SQL STATEMENT

    Could you post the SQL statement so we can get a better idea of the issue.

  • John Boyce

    Member
    08/28/2015 at 9:04 AM in reply to: SYSTEM SET UP – USERS

    Yes, we have a similar issue. Our current solution is to use one of the company check boxes to supplement the Vendor check box with Operations Vendor. Employees are created as Operations Vendors which allows us to integrate with the SaaS Expensable system. We then restrict ALL payables to only the accounting staff and have a report that others can run on individual vendors for payable info that won’t run on Operations Vendors. It would be good to be able to separate vendors into categories with the categories able to be restricted.

  • John Boyce

    Member
    08/14/2015 at 1:06 PM in reply to: QUANTUM WORKSTATION LICENSES

    Agreed. In the Firebird days there was (maybe still is) a way to connect to the database without using a license, if you were not using the Quantum program. That concept was removed with Oracle.

    We do a few things to help alleviate the problem. We wrote a Window service program that runs on the Oracle server to create a log at a pre-determined interval of the number of Quantum and other program connections so we can look for issues when users connect too many times, etc.

    We also changed some of our programs to disconnect after a period of inactivity, but allow the user to reconnect at the same place in the program with a mouse click.

    Finally, we moved some of our customized data to a Firebird database so that when we are not connected to the Oracle database to extract data, the programs can be disconnected from the Oracle DB.

    These are all workarounds to the problem, but the real solution is that users should be able to connect to the Oracle server/database without using a license if they are not connecting with a CC product.

  • John Boyce

    Member
    05/15/2015 at 8:27 AM in reply to: DIA IMPORT SIZES

    Tony,

    If you haven’t tested it in the TRAIN schema and are concerned that it won’t go through, I would do a test of the first 20,000 records or so and time it. If there aren’t any issues, you can then run the rest knowing approximately how long it will take.

    Another issue would be if there are intermediate commits in the DIA procedure. If you commit every 10000 records the database won’t have so much data to hold waiting for the commit or rollback command.

    John

  • John Boyce

    Member
    04/10/2015 at 8:42 AM in reply to: SAVE A REPORT OUTSIDE OF FORM DESIGNER TO VIEW CODE

    The output is in a form of Delphi. However, parts of it are encrypted and can only be read by ReportBuilder (the third party reporting program that CC uses for its Forms Designer). If you have a copy of ReportBuilder, I believe you can open the exported files.

  • John Boyce

    Member
    02/17/2015 at 9:46 AM in reply to: ORACLE

    We are running SE1 and have vetted it with Oracle when we installed. In looking it up the only difference between SE and SE1 requirements is based on the number of sockets (not cores) on your server. SE1 is up to two sockets and SE up to 4. I do know that if you have a server with multiple sockets you must license for all sockets on the server. We have a two socket server and license Oracle for both. This is also based on licensing by socket and not by named user. Here’s the link to the reference on the Oracle site. http://www.oracle.com/us/products/database/standard-edition-one/comparisons/index.html

  • John Boyce

    Member
    02/04/2015 at 8:42 AM in reply to: CTRL_NUMBER

    In Oracle you can’t alter the start value of a sequence. To change it you would have to drop the sequence and the recreate it.

    E.g.

    Drop Sequence “TRAIN”.”G_STM_CTRL_NUMBER”;

    CREATE SEQUENCE “TRAIN”.”G_STM_CTRL_NUMBER” MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 5555 NOCACHE NOORDER NOCYCLE ;

    The new Start with value (5555) must be greater than the value prior to the drop.

    In Firebird you can alter the value of the Generator – again making sure that it is greater than or equal to the largest value currently in use.

  • John Boyce

    Member
    01/27/2015 at 2:51 PM in reply to: REPORT GUIDANCE

    Tony,

    Would something like this help:

    Select pnm.pn, pnm.description, Sum(stm.qty_oh), Sum(cqd.qty_quoted), Sum(sod.qty_invoiced)

    from parts_master pnm join stock stm on pnm.pnm_auto_key = stm.pnm_auto_key

    join consignment_codes cnc on cnc.cnc_auto_key = stm.cnc_auto_key

    left join stock_reservations str on str.stm_auto_key = stm.stm_auto_key

    left join so_detail sod on sod.sod_auto_key = str.sod_auto_key

    left join cq_detail cqd on cqd.stm_auto_key = stm.stm_auto_key

    where cnc.consignment_code = ‘XXX’ and

    sod.entry_date > to_date(’01/01/2014′, ‘mm/dd/yyyy’) and

    sod.entry_date > to_date(’01/01/2015′, ‘mm/dd/yyyy’)

    group by pnm.pn, pnm.description;

  • John Boyce

    Member
    11/18/2014 at 9:50 AM in reply to: MAKING FIELDS READ-ONLY

    CC should be able to give you the name of the variable that they use for the active user.

  • John Boyce

    Member
    11/06/2014 at 9:02 AM in reply to: PRINT OPEN INVOICE EVENT

    On the previous message, the correct software for Oracle is Oracle SQL Developer, not SQL Manager.

  • John Boyce

    Member
    11/06/2014 at 8:54 AM in reply to: PRINT OPEN INVOICE EVENT

    You can set up your own stored procedures, functions or packages and include them in the Schema. As all of the above can modify the data (but don’t need to), you need to be careful. We prefix all of our metadata additions with AASS, which puts them at the top alphabetically and identifies them as ours.

    If there is a stored procedure that CC has created that does not modify data, you can copy and paste it into your own stored procedure, modify it and refer to it by the new name.

    Oracle’s SQL Manager is a good tool for doing this. It’s free from Oracle. For anyone on Firebird, there are several free and commercial products available. We use Interbase/Firebird Development Studio from http://www.sqlly.com. You can try it for 30 days for free and then it’s a couple hundred dollars to purchase.

    Be aware that the Dataversion program will delete some of the metadata that you create, so you need to keep a copy to paste into your new version when you update.

  • John Boyce

    Member
    10/08/2014 at 8:25 AM in reply to: VERSION 10.5

    We also upgraded to 10.4.33 last weekend. So far no major issues. We were advised that 10.5 isn’t quite ready for production, but would be good to put in a test environment to look at the new features. We’ll probably to that after things settle.

  • John Boyce

    Member
    08/29/2014 at 8:28 AM in reply to: CREATING STORED PROCEDURES AND LINKING TO EM

    Additional metadata is deleted by the DataVersion program when doing an update. We have additional tables, stored procedures, packages, sequences, views, etc. and how we handle it is to prefix all of our metadata objects with AASS. Then before the update, we make a copy of the schema. After the update, we have a program to copy all of the metadata prefixed with AASS back into the new production schema. This works for us, because by prefixing every thing with AASS, we never have to remember what additional changes were made that would have to be added to the upgraded schema.

  • John Boyce

    Member
    08/12/2014 at 8:43 AM in reply to: CREATING STORED PROCEDURES AND LINKING TO EM

    We haven’t as yet run stored procedures from within the Event Manager, but for creating and testing stored procedures for execution from any program I would suggest the Oracle SQL Developer. This is free software from Oracle which gives you access to all of your Oracle metatdata. Component Control puts all of their Procedures in Packages, which means that if you create any Procedures or Functions and don’t put them in a Package, they won’t be mixed in with CC’s.

    It also means that it’s easy to create the Procedure in the training schema and test it there before unleashing on the production data (especially if it modifies data).

    Procedures can then be run from within the Oracle SQL Developer or called from an external program or script (including Event Manager).

  • John Boyce

    Member
    08/01/2014 at 9:28 AM in reply to: USER TEMPLATES

    You can also create an additive template that only has selective privileges and add that only to those that have already had the standard template applied. For example you might have a template Purchasing Officer with standard privileges and another Senior Purchasing Officer with only a few additional privileges that is applied after the Purchasing Officer template.

  • John Boyce

    Member
    07/24/2014 at 11:20 AM in reply to: PREVENT MULTIPLE LOGIN

    What we do is call Quantum from within another program and before doing so, count the number of Windows where the window name starts with ‘Quantum Control’. You can then prevent the spawning of the Quantum program if another named window already exists. This only prevents running Quantum multiple times on the same device, not the total number of Quantum connections. The Microsoft system calls to do this are 1) Enumwindows – which returns a list of all top level windows and 2) GetWindowsText – which returns the name of the window for each window returned from Enumwindows.

    Another way would be to use the Query Paul mentioned in the how to log out inactive users thread to show who is currently connected, and then refuse an additional connection if the user is in that list.

  • John Boyce

    Member
    07/24/2014 at 10:10 AM in reply to: LOG OUT INACTIVE USERS

    Here’s a link to some Delphi code for terminating programs based on idle time within the program or on the whole system. I’ve used to disconnect from the Quantum Schema from within a program (works great), but not based on system idle.

    http://forum.codecall.net/topic/69690-detect-user-idle-and-do-something-after-some-time-ellapsed/

    John

  • John Boyce

    Member
    07/24/2014 at 8:58 AM in reply to: ALLOW EXTERNAL APPLICATIONS TO APPLY SECURITY

    I don’t know GRC, but you can definitely modify the security templates from outside Quantum. We have a program that creates a template from another template for further modification. You could probably apply changes to individual users as well, but you need to be certain of your changes to the Quantum tables, and test thoroughly or run by CC.

  • John Boyce

    Member
    07/07/2014 at 8:22 AM in reply to: MODIFY ILS FLAG ON STOCK LINES

    Bill,

    We’ve come across this in the past also. Our solution was to test for Serialized = ‘T’ and Serial Number = ” or Null. In those cases, update Serial Number to ‘Missing’ or ‘TBA’ before updating other fields in the stock record. You could then go through and look at the ‘Missing’ SN’s later if you wanted. This is safer than turning off the triggers.

    John

  • John Boyce

    Member
    04/10/2014 at 10:32 AM in reply to: QUANTUM VERSION 10 PROBLEMS

    Cameron,

    We generally try to do two updates annually, and definitely set up testing prior to the update. We also usually try to get a version that has been out for a couple of months, rather than the latest, unless there is a compelling reason to do so and rely on CC for input on a stable version. Our testing usually lasts a couple of weeks – maybe not as thorough as what you do, but we test all of our routine transactions and assign all of the change items in the CC documentation to individuals in the various departments for their approval.

    John

  • John Boyce

    Member
    03/20/2014 at 9:30 AM in reply to: IMPORTING FROM CREDIT CARD STATEMNT

    We use a product named Expensable which has a similar feature set to Expensify. Data can be exported from Expensable’s database in a number of formats and then imported to Quantum.

    John

  • John Boyce

    Member
    03/11/2014 at 9:01 AM in reply to: DBASE RUNNING SLOW AT INTERMITTENT TIMES

    Scott,

    In Firebird, page size and cache size work together to set up an area of memory. The amount of memory needed is page size * cache buffers. The defaults for Firebird 1.5 Superserver are page size of 1k and cache buffers of 2048. This only uses 2 MB of memory and comes from the time when FB 1.5 was created and memory was dear.

    Part of the equation is how large your database is, and also things like index levels and your NTFS cluster size which can get complicated.

    We use 8k pages (you could experiment by increasing pages from 1k to 2k, 4k, etc. until you hit the sweet spot) and 50000 cache buffers. This allocates about 400mb for caching so you need to make sure that you have enough memory, but with 4GB sounds like you do. In fact because of the 32bit address space for FB 1.5, increasing your memory beyond 4GB probably won’t have any effect.

    I think the limit for FB 1.5 is 62000 cache buffers, so you can’t go much larger anyway. You can use 16k page sizes, but we didn’t find any improvement beyond 8k, and if you do a lot of reads of small amounts of data, performance can be degraded with the larger page and cache sizes.

    We do backups and restores about quarterly and any time we do a Quantum upgrade (which is 1-2 times each year). You would need to do this anyway, each time you change the page size.

    As for fetch size of -1 – that is only a problem when retrieving data from large tables/queries, and can have the effect of a large report until the query is completed. If you are querying all of your quotes for example, and have several hundred thousand, the -1 fetch size says get all of the quotes in one bite. Other users can be hampered while the server is executing the query. If you use -1 on a lookup table with a couple hundred entries there may be no effect.

    Hope this helps.

    John

  • John Boyce

    Member
    03/06/2014 at 3:50 PM in reply to: DBASE RUNNING SLOW AT INTERMITTENT TIMES

    Scott,

    It’s hard to tell exactly what your problem is without looking a little deeper , but these are a few things that will affect the speed of the system in a Firebird environment.

    Larger cache on the RAID controller (512MB or more)

    Run discs in a RAID 10 configuration

    SAS or SCSI 15K RPM drives

    Have the Imaging server separate from the Quantum server

    Increase physical memory on Quantum server (8GB or more)

    Gigabit network for servers

    Increase Firebird database page size to 8,192MB (a backup and restore is needed to do this)

    Increase the number of cache pages in memory via Firebird config file. Database will have to be restarted for this to take effect.

    Only run Quantum on the Quantum server (no other services or programs should be run on this server)

    Run backup and restore periodically to increase database speed and compact the database

    Restrict reports to off hours or build delays in reports to slow them down

    Educate users on Fetch sizes in Quantum and never use -1 for a fetch size

    If you have any specific questions on this call me. 818-362-1100.

    John

  • John Boyce

    Member
    02/27/2014 at 4:09 PM in reply to: PULL PART OF THE DATA OF A FIELD

    Dave,

    In Crystal syntax the formula would be something like

    Mid({@Addr1}, Instr({@Addr1}, “,”)+1, 2).

    That would select the two characters starting with the first character after the first comma. If there were no commas in the field, it would be the first two commas of the field, so you might want to test for that.

    John

  • John Boyce

    Member
    01/28/2014 at 8:20 AM in reply to: DEFAULTING UPPERCASE

    In Delphi there is a function Uppercase, in which case the syntax is Form.txtDescription := Uppercase(Form.txtDescription).

  • John Boyce

    Member
    12/20/2013 at 9:29 AM in reply to: PART WARNINGS

    Alonda,

    That unique constraint (AK_WNT_WNM_PNM) requires that the combination of Warning Module and Parts Master must be unique. In other words, for each parts master record (PNM) there can be only one warning for each record in the Warning_Modules table (WNM). The entries in Warning_Modules refer to a table name to link to the warning, but it doesn’t look like there can be only one per table. If you create a new entry in Warning_modules to reference your second warning, you should be able to link it to the Parts_master table, though I haven’t tried this.

    John

Page 2 of 3