Much Ado About ADO!

Visual Basic
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

If you’ve ever worked with ODBC linked tables, you know how great it is to be able to use Windows -based development software to manipulate data from the AS/400. You also know the downside: Working with ODBC linked tables is slow. Well, thanks to Microsoft’s ActiveX Data Objects (ADO) and Client Access Express V4R4 for Windows OLE DB connectivity, you can have your cake and eat it, too. ADO/OLE DB allows you to use robust, flexible Windows software design tools without the slow performance of ODBC linked tables. And the best part i s that once you learn the technique, you can use it in Visual Basic (VB), Microsoft Access, Microsoft Excel, or even Active Server Pages (ASP). If you’re running Microsoft Office and Client Access/400, you have all the tools you need to get ADO up and runn ing.

This article shows you how to use Microsoft Access 97, ADO, and Client Access Express for Windows OLE DB support to create a report of files and their fields in a selected library. To begin, I note one key difference between ADO and ODBC linked tables. When working with ODBC, you link the table and forget about it. When using ADO, you download only the records you need into a Microsoft Access table using standard SQL and do the rest of your processing from there.

Using ADO is faster for several reason s. For one, you are making the AS/400 do what it does best — crunch data. Second, you are dealing with only the records you need in Access, not the entire table(s) from the AS/400. And finally, because the data is local to the PC (in an Access table), it is processed much faster than if it were in a linked table. (Editor’s Note: This article and code are written for Microsoft Access 97, but the code has also been tested in Access 2000. There are some subtle differences between the 97 and 2000 versions of Micr osoft Access that may confuse users of Access 2000 who are attempting to follow this article step by step. To remedy this, both an Access 97 and an Access 2000 version of the database and code are available for download from the MC Web site at www.midrange Access 2000 users will need to recompile

the module after changing user ID, password, and system names for the project to execute properly.)

Building Tables

No, I’m not referring to woodworking. The first thing you need to do is create the Access tables that will be used to hold the records downloaded from the AS/400. To create these tables, click (from the Tables tab) on New and select Design View. Use the information in Figure 1 to create tblTables when the table design form is display ed. Make sure you type all of the information exactly as it appears. (Field and table names in Access are case sensitive.) The tblTables table will contain data about the AS/400 files downloaded from the SYS_TABLES logical file in QSYS2. Define the Library and File fields as the primary key for this table and make sure that Allow Zero Length is set to Yes for the Heading field. After saving tblTables, use the same procedure to create the tblFields table. This table holds the file/field data downloaded from the SYS_COLUMNS logical in QSYS2. Define the primary key for this table using the Library, File, and Sequence fields and ensure that the Description field has Allow Zero Length set to Yes. Once you have the tables defined, you can start coding.

VB Modules

To retrieve the file data from the AS/400, you will be working with Microsoft Access Visual Basic modules. (Some familiarity with Access and VB will be helpful in completing this exercise.) To create the module, go to the Modules tab and click on New. Bef ore you can use the ADO libraries, you need to reference them. To do this, go to the Tools menu and click on References. You should see an item in the list of available references named Microsoft ActiveX Data Objects 2.x Libraries. Make sure that the box n ext to this item is checked; clicking this box gives your module access to the ADO/OLE DB objects.

The ADO/OLE DB objects are made up of several other objects. One is the Connection object, which defines the provider and data source information as well as the user name and password information for the data source. Another is the Command object, which is used to send commands to the data source. Finally, at least one Recordset object is used to retrieve the data defined by the Command object. The Connection object has an errors collection that is used in error trapping. The Command object is associated with the parameters collection, which is used to pass values into a parameterized SQL statement. The Recordset object uses its fields collection to access the data stored in the Recordset. You can improve performance by adjusting the CacheSize property on the ADO/OLE DB recordset. As a general rule, a value between 1,000 and 2,000 will give the best performance, but you will probably want to experiment and see what value gives you the best results. Create a new VB module by selecting the Modules tab and clicking on New. Now, type in the DownData subroutine shown in Figure 2. This will be used to retrieve data from the AS/400. Make sure you save this module unde r the name DownData also. This module first defines the ADO Connection object (conn), then defines the ADO Command object (cmd), which is used to pass the SQL commands through ADO. The module then defines the SQL statement to select the records from the sy stem table for the requested library. You should use parameterized SQL statements rather than concatenate the library name because the statements offer better performance. The ‘?’ is

the placeholder for the parameter. You can then pass in the parameter by using the parameters collection on the cmd object (i.e., cmd. parameter(0) is the first parameter, cmd.parameter(1) is the second, and so on).

Using the parameters collection gives better performance because the query optimizer doesn’t have to optimize the SQL statements every time the command is run. (The query optimizer runs the same SQL statement, only with a different parameter.) Now, the program can read through the records in the recordset that was defined by the SQL statement. The program adds these records to the tblTables Access table using the AddNew method on the tblTables object. You will use this same technique to read all of the field information from the tblSysColumns table and populate the records into the tblFields access table.

This is the same basic technique you might use to read data from any database file on your AS/400. The technique is similar to the one you would use to read data and write it out in an RPG program. Once the module downloads the requested data, it will display the report in Print Preview mode. The subfunction will display an error -message box if the library name entered is invalid. (Editor’s Note: If you are using Microsoft Access 2000, you need to compile the code before it will execute. To compile, select Compile fro m the Debug menu.)

Form, Query, and Report Definitions

Now that you have the code to download AS/400 data to Access, you can create a simple form to act as a prompt for the library name. To create this form, go to the Forms tab and select New. When the Ne w Form box appears, select Design View and click on OK. First, we will add a text box to the form. To do this, select the text box icon from the form designer toolbox. This is the icon that resembles a lowercase ab. Now, click on the area of your form wher e you want to place the new text box and drag to create a small one -line text box. Make sure the size of the box will be large enough to allow for the entry of an AS/400 library name. Now, right -click on the text box and select Properties from the menu. On the Other tab, enter the Name property as txtLibrary. Now, select the Command button from the toolbox and use it to create a new Command button on your form. If the Command button wizard is displayed, simply click Cancel. Using the same technique we used for the text box, rename the Command button as cmdRun. While on the Properties box, click on the Events tab. Select the OnClick event of the cmdRun button and type “Call DownData”; this gives control to the subroutine. Next, right -click on the top of your form window and select Properties from the Context menu. Now, click on the Format tab and change the BorderStyle property to Dialog; changing this property prevents the box from being resized at runtime. When you close the form, Access will ask if you want to save it; save the form as frmFileInformation. Next, you need to create a query to join the two temporary tables. You will use this query to create the file information report. Click on the Queries tab, select New, and create the query in Design View. Close the Show Table dialog; do not add any tables to the query. When the QBE screen appears, click on the View menu and select SQL View. When the SQL View is displayed, replace the Select statement with the SQL statements in Figure 3. Again, remember to type all of the lines exactly as they appear. Now, save the query as qryHeaderDetailJoin.

You now need to create the report. To do this, click on New from the Reports tab, select Design View, and select qryHeaderDetailJoin from the combo list box. When the design screen appears, resize the page to 8 inch width. Next, go to the File menu and select Page Setup and reduce all margins to .25”. Doing this will allow you to use a larger area of the page for your report.

At this point, you need to define the repor t groups. Report groups will let you define how the records will sort and group. To set up the groups, go to the View menu and click Sorting and Grouping. When the dialog is displayed, select the Library and File fields as the first two sort fields and cha nge both fields’ Group Header property to Yes. Now, add the Sequence field as the third sort field. Make sure the Sequence field’s Group Header and Group Footer properties are both No and close the Sorting and Grouping box.

From the View menu, click on Fi eld List to display the available fields from the query. Using Figure 4 as a guide, position the fields on the page: Simply click on the field in the list and drag it to the proper area of the report screen. As you do this, you will notice that Access will automatically create a label as the field heading. When dragging fields to the detail section, delete those labels; create your own heading labels for those field and report headings using Label objects. You may also want to add lines along the bottom of each of the group sections, as well as at the bottom of the page header and footer, to make the report easier to read. Finally, create a text box in the Page Footer section of the report. Right -click on the new text box and select Properties. Now, click on the Data tab and set the Control Source property to =”Page “ & [Page] & “ of “ & [Pages]. Doing this will display the page number and total number of pages on the bottom of each page of the report. Click on the File menu and select Save As to save the new report under the name rptFileInformation.

Running the Report

Now that the grunt work is done, open the frmFileInformation form created earlier, type the name of one of your AS/400 libraries in the box provided, and click on Run Report. The output displayed should look similar to what is shown in Figure 5. This report gives you a list of files in the selected library as well as field information for each file. Possible improvements to this example are to add System Name, User ID, and Password fields to the prompt window to allow the report to be freely distributed or to print all indexes available for each table on the report.

Once you’ve started using ADO, you’ll find uses for it other than report programs. The quick speed of data access allows you to crea te front -ends for your AS/400 data in Access/VB or even ASP. Also, the low overhead required allows you to develop applications almost as quickly as ADO accesses data. Now that you have the tools, I am sure you will find much to do with ADO.

References and Related Materials

• A Fast Path to AS/400 Client/Server Using AS/400 OLE DB Support, Redbook (SG24 5183-00)

• “AS/400 Client/Server Programming with ADO, Microsoft Excel 2000, and OLE DB,” Michael Sansoterra, AS/400 Network Expert, May/June 1999
• “Ask the SDK Wizard,” David Mayle, MC, September 1999

• IBM Client Access OLE DB Support Web page:
• “Launching SQL Statements Through Microsoft Access Pass -through Queries,” Michael Sansoterra, AS/400 Network Expert, Novem ber/
• “Making PC Application-to-AS/400 Programming a Snap with IBM’s AS/400 SDK for ActiveX and OLE DB,” Brant Klepel, AS/400 Network Expert, January/February 1999 (available on the ANE Classics Web page at www.midrangecomputing. com/ane/classics.cfm)
• “More AS/400 Client/Server Programming with ADO and VBA,” Michael Sansoterra, AS/400 Network Expert, July/August 1999
• “Slam-dunking AS/400 Data into Microsoft Excel with OLE DB,” Brant Klepel, MC, May 1999
• “The ODBC and OLE DB Strategy Guide,” Howard F. Arner, Jr., MC, September 1999

Figure 1: These are the two tables that will be used to hold data downloaded through ADO.

Sub DownData()

Dim conn As New ADODB.Connection ‘Define ADO Connection
Dim cmd As New ADODB.Command ‘Define Command Object
Dim tblSysTables As New ADODB.Recordset ‘Define ADO recordset for SysTables
Dim tblSysColumns As New ADODB.Recordset ‘Define ADO recordset for SysColumns
Dim connStr As String ‘Connection String
Dim tblTables As Recordset ‘Access Table for Systables data
Dim tblFields As Recordset ‘Access table for SysColumns data

‘First we define our connection Provider will always be IBMDA400. Other options
‘should be changed to match your system, user name & password

Microsoft_Computing_Analysis-_W2K__Not_Y2K...07-00.png 375x525

On Error GoTo OpenErr

‘Replace USERNAME, PASSWORD with valid values on your system.
'Replace AS400SYS with your Client Access system name.
connStr = “Provider=IBMDA400;User ID=USERNAME;Password=PASSWORD;Data Source=AS400SYS”
conn.ConnectionString = connStr
conn.Open ‘Open the connection

DoCmd.SetWarnings False ‘Disable displaying of warning messages
DoCmd.RunSQL “DELETE * FROM tblTables” ‘Clear Temporary Tables
DoCmd.RunSQL “DELETE * FROM tblFields”

cmd.ActiveConnection = conn
‘Associate our command object with the connection object

‘ This statement selects all records from the SYSTABLES file where the library matches
‘ the value sent in through parameter(0).
'It selects only Data Files with a type of Physical or Logical


cmd.Parameters(0) = Forms!frmFileInformation.txtLibrary
‘Pass library name from prompt form

tblSysTables.CacheSize = 1500 cmd.Execute ‘Set recordset using SQL statement

Set tblTables = CurrentDb.OpenRecordset(“tblTables”)

While Not tblSysTables.EOF

With tblTables


.Fields(“Library”) = tblSysTables.Fields(“SYS_DNAME”)

.Fields(“File”) = tblSysTables.Fields(“SYS_TNAME”)

.Fields(“Description”) = tblSysTables.Fields(“LABEL”)

.Fields(“FileType”) = tblSysTables.Fields(“TYPE”)


End With

If tblSysTables.RecordCount = 0 Then

MsgBox “Invalid Library or No Files in Library”, vbOKOnly, “Error!”

GoTo SkipReport
End If

‘ Selects all records from the SYSCOLUMNS file where the library matches
‘ the value sent in through parameter(0)




cmd.Parameters(0) = Forms!frmFileInformation.txtLibrary
‘Pass library name from prompt form
tblSysColumns.CacheSize = 1500
‘Set recordset using SQL statement cmd.Execute

Set tblFields = CurrentDb.OpenRecordset(“tblFields”)

While Not tblSysColumns.EOF

With tblFields


.Fields(“Library”) = tblSysColumns.Fields(“SYS_DNAME”)

.Fields(“File”) = tblSysColumns.Fields(“SYS_TNAME”)

.Fields(“Sequence”) = tblSysColumns.Fields(“COLNO”)

.Fields(“Field”) = tblSysColumns.Fields(“SYS_CNAME”)

.Fields(“Heading”) = tblSysColumns.Fields(“LABELTEXT”)

.Fields(“FieldType”) = tblSysColumns.Fields(“COLTYPE”)

.Fields(“FieldLength”) = tblSysColumns.Fields(“LENGTH”)
.Fields(“DecPlaces”) = tblSysColumns.Fields(“SCALE”)


End With

‘Now we preview our report.

DoCmd.OpenReport “rptFileInformation”, acViewPreview
GoTo SkipReport


MsgBox Err.Description & “ “ & conn.Errors(0).Source, vbCritical

DoCmd.SetWarnings True ‘Turn warning messages back on

End Sub

Figure 2: This code will be used to download data from your AS400 files into Access tables.

Figure 3: Use these SQL statements to create an Access query to join the tblTable table to the tblFields table.

Figure 4: Create your report layout using this figure as a guide.

Microsoft_Computing_Analysis-_W2K__Not_Y2K...09-00.png 750x187

Microsoft_Computing_Analysis-_W2K__Not_Y2K...09-01.png 595x427

Figure 5: This is a sample of the printed output data generated by the report.

Mike Faust

Mike Faust is a senior consultant/analyst for Retail Technologies Corporation in Orlando, Florida. Mike is also the author of the books Active Server Pages Primer, The iSeries and AS/400 Programmer's Guide to Cool Things, JavaScript for the Business Developer, and SQL Built-in Functions and Stored Procedures. You can contact Mike at

MC Press books written by Mike Faust available now on the MC Press Bookstore.

Active Server Pages Primer Active Server Pages Primer
Learn how to make the most of ASP while creating a fully functional ASP "shopping cart" application.
List Price $79.00

Now On Sale

JavaScript for the Business Developer JavaScript for the Business Developer
Learn how JavaScript can help you create dynamic business applications with Web browser interfaces.
List Price $44.95

Now On Sale

SQL Built-in Functions and Stored Procedures SQL Built-in Functions and Stored Procedures
Unleash the full power of SQL with these highly useful tools.
List Price $49.95

Now On Sale



Support MC Press Online





  • White Paper: Node.js for Enterprise IBM i Modernization

    SB Profound WP 5539

    If your business is thinking about modernizing your legacy IBM i (also known as AS/400 or iSeries) applications, you will want to read this white paper first!

    Download this paper and learn how Node.js can ensure that you:
    - Modernize on-time and budget - no more lengthy, costly, disruptive app rewrites!
    - Retain your IBM i systems of record
    - Find and hire new development talent
    - Integrate new Node.js applications with your existing RPG, Java, .Net, and PHP apps
    - Extend your IBM i capabilties to include Watson API, Cloud, and Internet of Things

    Read Node.js for Enterprise IBM i Modernization Now!


  • Profound Logic Solution Guide

    SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation.
    Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects.
    The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the companyare not aligned with the current IT environment.

    Get your copy of this important guide today!


  • 2022 IBM i Marketplace Survey Results

    Fortra2022 marks the eighth edition of the IBM i Marketplace Survey Results. Each year, Fortra captures data on how businesses use the IBM i platform and the IT and cybersecurity initiatives it supports.

    Over the years, this survey has become a true industry benchmark, revealing to readers the trends that are shaping and driving the market and providing insight into what the future may bring for this technology.

  • Brunswick bowls a perfect 300 with LANSA!

    FortraBrunswick is the leader in bowling products, services, and industry expertise for the development and renovation of new and existing bowling centers and mixed-use recreation facilities across the entertainment industry. However, the lifeblood of Brunswick’s capital equipment business was running on a 15-year-old software application written in Visual Basic 6 (VB6) with a SQL Server back-end. The application was at the end of its life and needed to be replaced.
    With the help of Visual LANSA, they found an easy-to-use, long-term platform that enabled their team to collaborate, innovate, and integrate with existing systems and databases within a single platform.
    Read the case study to learn how they achieved success and increased the speed of development by 30% with Visual LANSA.


  • Progressive Web Apps: Create a Universal Experience Across All Devices

    LANSAProgressive Web Apps allow you to reach anyone, anywhere, and on any device with a single unified codebase. This means that your applications—regardless of browser, device, or platform—instantly become more reliable and consistent. They are the present and future of application development, and more and more businesses are catching on.
    Download this whitepaper and learn:

    • How PWAs support fast application development and streamline DevOps
    • How to give your business a competitive edge using PWAs
    • What makes progressive web apps so versatile, both online and offline



  • The Power of Coding in a Low-Code Solution

    LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed.
    Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

    • Discover the benefits of Low-code's quick application creation
    • Understand the differences in model-based and language-based Low-Code platforms
    • Explore the strengths of LANSA's Low-Code Solution to Low-Code’s biggest drawbacks



  • Why Migrate When You Can Modernize?

    LANSABusiness users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.
    In this white paper, you’ll learn how to think of these issues as opportunities rather than problems. We’ll explore motivations to migrate or modernize, their risks and considerations you should be aware of before embarking on a (migration or modernization) project.
    Lastly, we’ll discuss how modernizing IBM i applications with optimized business workflows, integration with other technologies and new mobile and web user interfaces will enable IT – and the business – to experience time-added value and much more.


  • UPDATED: Developer Kit: Making a Business Case for Modernization and Beyond

    Profound Logic Software, Inc.Having trouble getting management approval for modernization projects? The problem may be you're not speaking enough "business" to them.

    This Developer Kit provides you study-backed data and a ready-to-use business case template to help get your very next development project approved!

  • What to Do When Your AS/400 Talent Retires

    FortraIT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators is small.

    This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn:

    • Why IBM i skills depletion is a top concern
    • How leading organizations are coping
    • Where automation will make the biggest impact


  • Node.js on IBM i Webinar Series Pt. 2: Setting Up Your Development Tools

    Profound Logic Software, Inc.Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. In Part 2, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Attend this webinar to learn:

    • Different tools to develop Node.js applications on IBM i
    • Debugging Node.js
    • The basics of Git and tools to help those new to it
    • Using as a pre-built development environment



  • Expert Tips for IBM i Security: Beyond the Basics

    SB PowerTech WC GenericIn this session, IBM i security expert Robin Tatam provides a quick recap of IBM i security basics and guides you through some advanced cybersecurity techniques that can help you take data protection to the next level. Robin will cover:

    • Reducing the risk posed by special authorities
    • Establishing object-level security
    • Overseeing user actions and data access

    Don't miss this chance to take your knowledge of IBM i security beyond the basics.



  • 5 IBM i Security Quick Wins

    SB PowerTech WC GenericIn today’s threat landscape, upper management is laser-focused on cybersecurity. You need to make progress in securing your systems—and make it fast.
    There’s no shortage of actions you could take, but what tactics will actually deliver the results you need? And how can you find a security strategy that fits your budget and time constraints?
    Join top IBM i security expert Robin Tatam as he outlines the five fastest and most impactful changes you can make to strengthen IBM i security this year.
    Your system didn’t become unsecure overnight and you won’t be able to turn it around overnight either. But quick wins are possible with IBM i security, and Robin Tatam will show you how to achieve them.

  • Security Bulletin: Malware Infection Discovered on IBM i Server!

    SB PowerTech WC GenericMalicious programs can bring entire businesses to their knees—and IBM i shops are not immune. It’s critical to grasp the true impact malware can have on IBM i and the network that connects to it. Attend this webinar to gain a thorough understanding of the relationships between:

    • Viruses, native objects, and the integrated file system (IFS)
    • Power Systems and Windows-based viruses and malware
    • PC-based anti-virus scanning versus native IBM i scanning

    There are a number of ways you can minimize your exposure to viruses. IBM i security expert Sandi Moore explains the facts, including how to ensure you're fully protected and compliant with regulations such as PCI.



  • Encryption on IBM i Simplified

    SB PowerTech WC GenericDB2 Field Procedures (FieldProcs) were introduced in IBM i 7.1 and have greatly simplified encryption, often without requiring any application changes. Now you can quickly encrypt sensitive data on the IBM i including PII, PCI, PHI data in your physical files and tables.
    Watch this webinar to learn how you can quickly implement encryption on the IBM i. During the webinar, security expert Robin Tatam will show you how to:

    • Use Field Procedures to automate encryption and decryption
    • Restrict and mask field level access by user or group
    • Meet compliance requirements with effective key management and audit trails


  • Lessons Learned from IBM i Cyber Attacks

    SB PowerTech WC GenericDespite the many options IBM has provided to protect your systems and data, many organizations still struggle to apply appropriate security controls.
    In this webinar, you'll get insight into how the criminals accessed these systems, the fallout from these attacks, and how the incidents could have been avoided by following security best practices.

    • Learn which security gaps cyber criminals love most
    • Find out how other IBM i organizations have fallen victim
    • Get the details on policies and processes you can implement to protect your organization, even when staff works from home

    You will learn the steps you can take to avoid the mistakes made in these examples, as well as other inadequate and misconfigured settings that put businesses at risk.



  • The Power of Coding in a Low-Code Solution

    SB PowerTech WC GenericWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed.
    Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

    • Discover the benefits of Low-code's quick application creation
    • Understand the differences in model-based and language-based Low-Code platforms
    • Explore the strengths of LANSA's Low-Code Solution to Low-Code’s biggest drawbacks



  • Node Webinar Series Pt. 1: The World of Node.js on IBM i

    SB Profound WC GenericHave you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.
    Part 1 will teach you what Node.js is, why it's a great option for IBM i shops, and how to take advantage of the ecosystem surrounding Node.
    In addition to background information, our Director of Product Development Scott Klement will demonstrate applications that take advantage of the Node Package Manager (npm).
    Watch Now.

  • The Biggest Mistakes in IBM i Security

    SB Profound WC Generic The Biggest Mistakes in IBM i Security
    Here’s the harsh reality: cybersecurity pros have to get their jobs right every single day, while an attacker only has to succeed once to do incredible damage.
    Whether that’s thousands of exposed records, millions of dollars in fines and legal fees, or diminished share value, it’s easy to judge organizations that fall victim. IBM i enjoys an enviable reputation for security, but no system is impervious to mistakes.
    Join this webinar to learn about the biggest errors made when securing a Power Systems server.
    This knowledge is critical for ensuring integrity of your application data and preventing you from becoming the next Equifax. It’s also essential for complying with all formal regulations, including SOX, PCI, GDPR, and HIPAA
    Watch Now.

  • Comply in 5! Well, actually UNDER 5 minutes!!

    SB CYBRA PPL 5382

    TRY the one package that solves all your document design and printing challenges on all your platforms.

    Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product.

    Request your trial now!

  • Backup and Recovery on IBM i: Your Strategy for the Unexpected

    FortraRobot automates the routine tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:
    - Simplified backup procedures
    - Easy data encryption
    - Save media management
    - Guided restoration
    - Seamless product integration
    Make sure your data survives when catastrophe hits. Try the Robot Backup and Recovery Solution FREE for 30 days.

  • Manage IBM i Messages by Exception with Robot

    SB HelpSystems SC 5413Managing messages on your IBM i can be more than a full-time job if you have to do it manually. How can you be sure you won’t miss important system events?
    Automate your message center with the Robot Message Management Solution. Key features include:
    - Automated message management
    - Tailored notifications and automatic escalation
    - System-wide control of your IBM i partitions
    - Two-way system notifications from your mobile device
    - Seamless product integration
    Try the Robot Message Management Solution FREE for 30 days.

  • Easiest Way to Save Money? Stop Printing IBM i Reports

    FortraRobot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing.
    Manage your reports with the Robot Report Management Solution. Key features include:

    - Automated report distribution
    - View online without delay
    - Browser interface to make notes
    - Custom retention capabilities
    - Seamless product integration
    Rerun another report? Never again. Try the Robot Report Management Solution FREE for 30 days.

  • Hassle-Free IBM i Operations around the Clock

    SB HelpSystems SC 5413For over 30 years, Robot has been a leader in systems management for IBM i.
    Manage your job schedule with the Robot Job Scheduling Solution. Key features include:
    - Automated batch, interactive, and cross-platform scheduling
    - Event-driven dependency processing
    - Centralized monitoring and reporting
    - Audit log and ready-to-use reports
    - Seamless product integration
    Scale your software, not your staff. Try the Robot Job Scheduling Solution FREE for 30 days.