The Table_StartShrink() function creates a temporary data table that can be used to store data from an original table that’s being shrunk.
Table_StartShrink(product_ID, table table_name, pathname)
• product_ID – An integer specifying the product ID of the dictionary containing the table being shrunk.
• table table_name – The name of the table being shrunk.
• pathname – A string indicating the full generic pathname where the temporary file is to be created. Use an empty string ("") if you’re storing the temporary table in the same folder as the original table.
An integer describing the result of the temporary table initialization. The result is 0 if the temporary table was created successfully. Any other value indicates an error. The following list shows the errors and their corresponding integer values:
0 – No error |
20 – Transaction in progress |
1 – Low on memory |
21 – Not a variable length table |
2 – Database manager not initialized |
22 – No table definition could be found |
3 – Database manager not supported |
23 – Attempted to lock two records |
4 – Too many tables opened |
24 – No lock on update |
5 – Record length too long |
25 – Table doesn’t match definition |
6 – Too many keys for database type |
26 – The disk is full |
7 – Too many segments |
27 – Unknown error |
8 – Table not registered |
28 – A non-modifiable key changed |
9 – Table not found |
29 – Not a variable length field |
10 – Locked record |
30 – A record was changed with a passive lock |
11 – Table name error |
31 – Deadlocked |
12 – Table not open |
32 – Path not found |
13 – Table not opened exclusive |
33 – Buffer error |
14 – Invalid command sent to database manager |
34 – Error in creating a P.SQL table |
15 – Key number doesn’t exist |
35 – Invalid key definition |
16 – End of file |
36 – Maximum number of SQL connections reached |
17 – Duplicate record |
37 – Error accessing SQL data |
18 – Table is missing |
38 – Error converting SQL data |
19 – A set is already active |
39 – Error generating SQL data |
Shrinking is the process of removing unused space from a data table. The process is called a “shrink” because the table will invariably be smaller after the unused space is removed. The Table_CopyShrinkRecords() function copies the contents of the original table to the temporary table created by Table_StartShrink(). This transfer allows the temporary table to store only records from the original table; excess space in the original table isn’t transferred to the temporary table. After the copy is complete, the Table_EndShrink() function finishes the table shrink.
If no location is specified in the pathname parameter, the shrink table will be created in the same location as the original table. If there’s limited disk space at the location of the original table, use the pathname parameter to select a different location for the temporary table that has adequate space to hold the temporary table.
This function will create a temporary table named SRHNKXXX.DAT, with XXX representing a value from 001 to 999, ensuring a unique temporary table name.