Progress Interview Preparation Guide
Optimize your Progress interview preparation with our curated set of 12 questions. These questions are specifically selected to challenge and enhance your knowledge in Progress. Perfect for all proficiency levels, they are key to your interview success. Dont miss out on our free PDF download, containing all 12 questions to help you succeed in your Progress interview. Its an invaluable tool for reinforcing your knowledge and building confidence.12 Progress Questions and Answers:
1 :: Explain what is the use of ASSIGN statement in progress database?
You also have encountered the ASSIGN statement. ASSIGN moves data from the screen buffer
to the record buffer,
Once you move changes from the screen buffer to the record buffer, or make changes directly
to the record buffer, Progress understands that you want those changes written to the database.
Progress does not immediately write the changes to the database. When the write occurs is based
on other factors. The next section describes how Progress handles database writes.
This is the syntax for the ASSIGN statement
to the record buffer,
Once you move changes from the screen buffer to the record buffer, or make changes directly
to the record buffer, Progress understands that you want those changes written to the database.
Progress does not immediately write the changes to the database. When the write occurs is based
on other factors. The next section describes how Progress handles database writes.
This is the syntax for the ASSIGN statement
2 :: Tell me what are the cases under which progress does not update an index?
Progress does not update an index if the value you try to assign to the index field is the same as the current value of the index field. You can change the name of an index at any time.
3 :: Do you know what is the option used to find out which index is used by Progress for a particular query?
We can compile the code by using xref option
4 :: Explain what are the scenarios or situations under which Progress Database creates new index entry for a record?
As you work with your application, you will want to know when Progress creates and updates indexes. Progress creates a new index entry for a record at the first occurrence of any one of the following:
-At the end of a statement in which Progress assigns values to all components of the index entry.
-At the end of the closest iterating subtransaction block in which the Progress 4GL creates the record.
-When Progress processes a VALIDATE statement.
-When Progress releases the record from the record buffer.
- At the end of the transaction in which Progress creates the record.
Progress updates an index at the end of any statement in which it changes the values for one or more index fields. Because Progress updates indexes immediately (at the end of an UPDATE statement), Progress immediately FINDs records in the order of the new index, while the data in the found record is unchanged. Progress changes the data in the record at the end of the scope of the record or when it releases the record.
Note: Progress does not update an index if the value you try to assign to the index field is the same as the current value of the index field. You can change the name of an index at any time.
You can also delete nonprimary indexes. However, before letting you delete a primary index, OpenEdge requires that you first designate another index as primary.
If there is only one index, you must create a new index before deleting the existing index. You cannot change any of the component definitions of an index. Instead, you must delete the index and re-create it using the modified component definitions.
Remember that OpenEdge assumes that the first index you create is the primary index, so create your primary index first. Using the 4GL
-At the end of a statement in which Progress assigns values to all components of the index entry.
-At the end of the closest iterating subtransaction block in which the Progress 4GL creates the record.
-When Progress processes a VALIDATE statement.
-When Progress releases the record from the record buffer.
- At the end of the transaction in which Progress creates the record.
Progress updates an index at the end of any statement in which it changes the values for one or more index fields. Because Progress updates indexes immediately (at the end of an UPDATE statement), Progress immediately FINDs records in the order of the new index, while the data in the found record is unchanged. Progress changes the data in the record at the end of the scope of the record or when it releases the record.
Note: Progress does not update an index if the value you try to assign to the index field is the same as the current value of the index field. You can change the name of an index at any time.
You can also delete nonprimary indexes. However, before letting you delete a primary index, OpenEdge requires that you first designate another index as primary.
If there is only one index, you must create a new index before deleting the existing index. You cannot change any of the component definitions of an index. Instead, you must delete the index and re-create it using the modified component definitions.
Remember that OpenEdge assumes that the first index you create is the primary index, so create your primary index first. Using the 4GL
5 :: Tell me what are the steps and needed resources for connecting to a Progress Database?
// DATABASE CONNECTION AND SELECTION VARIABLES - GET THESE FROM YOUR HOSTING COMPANY
$db_host = "localhost"; // PROBABLY THIS IS OK
$db_name = "??";
$db_user = "??";
$db_word = "??";
// WARNING: AN UNCAUGHT CONNECT ERROR WILL BARK OUT THE DB CREDENTIALS!
// $pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, 'foo');
// OPEN A CONNECTION TO THE DATA BASE SERVER AND SELECT THE DB
$dsn = "mysql:host=$db_host;dbname=$db_name";
try
{
$pdo = new PDO($dsn, $db_user, $db_word);
}
catch(PDOException $exc)
{
var_dump($exc);
trigger_error($exc->getMessage(), E_USER_ERROR);
}
// SHOW THE PDO CONNECTION OBJECT
var_dump($pdo);
echo PHP_EOL;
$db_host = "localhost"; // PROBABLY THIS IS OK
$db_name = "??";
$db_user = "??";
$db_word = "??";
// WARNING: AN UNCAUGHT CONNECT ERROR WILL BARK OUT THE DB CREDENTIALS!
// $pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, 'foo');
// OPEN A CONNECTION TO THE DATA BASE SERVER AND SELECT THE DB
$dsn = "mysql:host=$db_host;dbname=$db_name";
try
{
$pdo = new PDO($dsn, $db_user, $db_word);
}
catch(PDOException $exc)
{
var_dump($exc);
trigger_error($exc->getMessage(), E_USER_ERROR);
}
// SHOW THE PDO CONNECTION OBJECT
var_dump($pdo);
echo PHP_EOL;
6 :: Explain OpenLink Data Access Components?
Your OpenLink Data Access Driver Suite (Multi-Tier Edition) consists of the following components, subdivided by prime function:
Client Components (OpenLink Database Agent Service Consumers)
Generic ODBC Driver (the file "oplodb32.dll" under windows or OS/2, "oplodbc.sl" or "oplodbc.so" under UNIX)
Generic Driver for JDBC (the files "opljdbc.zip" or "oplj dbc.jar")
Generic UDBC Driver (the end product of statically linking the file libudbc.o or dynamically linking the file "libudbc.so" or libudbc.sl" under UNIX)
Server Components (OpenLink Database Agent Service Providers)
OpenLink Request Broker (the file "oplrqb" or "oplrqb.exe" depending on operating system)
OpenLink Database Agents (the files "pro63e_sv" or "pro73c_sv" or "pro82a_sv" depending on major and minor Progress Database Server version and sub-version number)
The prime function of your OpenLink Components does not determine their physical location within your I.T. infrastructure, this is driven instead by the logical structure and nature of your database connectivity requirements.
Client Components (OpenLink Database Agent Service Consumers)
Generic ODBC Driver (the file "oplodb32.dll" under windows or OS/2, "oplodbc.sl" or "oplodbc.so" under UNIX)
Generic Driver for JDBC (the files "opljdbc.zip" or "oplj dbc.jar")
Generic UDBC Driver (the end product of statically linking the file libudbc.o or dynamically linking the file "libudbc.so" or libudbc.sl" under UNIX)
Server Components (OpenLink Database Agent Service Providers)
OpenLink Request Broker (the file "oplrqb" or "oplrqb.exe" depending on operating system)
OpenLink Database Agents (the files "pro63e_sv" or "pro73c_sv" or "pro82a_sv" depending on major and minor Progress Database Server version and sub-version number)
The prime function of your OpenLink Components does not determine their physical location within your I.T. infrastructure, this is driven instead by the logical structure and nature of your database connectivity requirements.
7 :: Explain Distributed Databases, Array Fields, Database Triggers?
Our ODBC Drivers facillate the support of the above through the use of a custom "Data Dictionary File", this file is built by running the OpenLink provided Progress Program File "setup.p" situated in the "bin" sub-directory below the OpenLink base installation directory.
Once the script has been run, modify the OpenLink "Session Rules Book" using the gudilines displayed when the " setup.p" program completes.
Note: To make use of Progress Database Triggers please ensure that the Logical Database name to which your Triggers have been compiled matches the value that you provide to the "-ld" parameter when setting your Progress Database Connect options during the execution of "setup.p" .
Example:
If you have compiled your triggers against a database physically identified as "/usr/progress/demo.db" but logically identified as "mydemo" your "setup.p" Database Connection String would be:
/usr/progress/demo -ld mydemo
Once the script has been run, modify the OpenLink "Session Rules Book" using the gudilines displayed when the " setup.p" program completes.
Note: To make use of Progress Database Triggers please ensure that the Logical Database name to which your Triggers have been compiled matches the value that you provide to the "-ld" parameter when setting your Progress Database Connect options during the execution of "setup.p" .
Example:
If you have compiled your triggers against a database physically identified as "/usr/progress/demo.db" but logically identified as "mydemo" your "setup.p" Database Connection String would be:
/usr/progress/demo -ld mydemo
8 :: Explain what are the vital features of Progress database?
Plz share your knowledge.
9 :: Tell me what is metaschema in Progress Database?
The set of internal database tables that define the underlying structure of a Progress database. Metaschema table names begin with the underscore ( _ ) character. Metaschema tables are hidden tables and, therefore, are not ordinarily visible in the Data Dictionary.
10 :: Explain what are the similarities and differences between progress and SQL?
After the ongoing debate earlier this autumn on the respective merits of Microsoft SQL Server and Progress – and whether it was possible for the two platforms to co-exist, Andrew Bremner (the managing director of Focus IT Ltd) has been in touch to say “My company has recently been granted a license to sell and support a realtime Progress to SQL Server (or Oracle) tool in the UK. This tool is developed and owned by Bravepoint in the US. Called Pro2SQL, this is mature, stable and working at many Progress sites across the US. I believe this product has the potential to end the Progress -v- SQL Server debate and allow end users to have the best of both worlds with their production database on Progress and their reporting in SQL Server.”