Sample Header Ad - 728x90

Database Administrators

Q&A for database professionals who wish to improve their database skills

Latest Questions

0 votes
1 answers
281 views
What is an ODBK file and how to restore that?
I have recently come across a situation where I am required to restore an ODBK file. Basically this is a database file of Intergy Server (An EHR platform). I don't know how to restore that file into a supported DB engine and how can I view the data. Upon searching I came to know that this is an Open...
I have recently come across a situation where I am required to restore an ODBK file. Basically this is a database file of Intergy Server (An EHR platform). I don't know how to restore that file into a supported DB engine and how can I view the data. Upon searching I came to know that this is an OpenEdge DB file. The server is running a Postgres engine as well but there is no table related to that EHR.
Hasnain (1 rep)
Apr 13, 2020, 03:42 PM • Last activity: May 13, 2025, 08:06 PM
0 votes
1 answers
296 views
Progress SQL no lock
I need to be able to run a query without table locking. How would I accomplish this. SELECT * FROM pub.my_table with no lock WHERE my_table.description LIKE 'white bunnies' ORDER BY created_at
I need to be able to run a query without table locking. How would I accomplish this. SELECT * FROM pub.my_table with no lock WHERE my_table.description LIKE 'white bunnies' ORDER BY created_at
Daniel L. VanDenBosch (408 rep)
Feb 2, 2023, 09:40 PM • Last activity: May 11, 2025, 06:00 PM
-1 votes
1 answers
659 views
Heavy performance drop on Progress query, looks like based on string character inside table
I'm launching following query on a Rel 11.6 Progress database: ```` FIND FIRST Table1 WHERE Table1.Field1 = 1 AND Table1.Field2 >= 2 AND TRUE AND CAN-FIND(Table2 WHERE Table2.Field1 = Table1.Field3 /* join */ AND Table2.Field2 = 0 AND Table2.Field3 = "WHATEVER"). ```` On both tables, the necessary i...
I'm launching following query on a Rel 11.6 Progress database:
`
FIND FIRST Table1 WHERE Table1.Field1 = 1
                    AND Table1.Field2 >= 2
                    AND TRUE
                    AND
  CAN-FIND(Table2 WHERE Table2.Field1 = Table1.Field3    /* join */
                    AND Table2.Field2 = 0
                    AND Table2.Field3 = "WHATEVER").
` On both tables, the necessary indexes are created and rebuilt. The problem is the following: when the criterion Table2.Field3 = "WHATEVER" is present (although that field is present in an index), the query takes entire minutes to run, otherwise the query is done very rapidly (in a matter of seconds). What can explain such behaviour in a Progress 11.6 database and are there any profiling possibilities for monitoring what's happening? (I'm working with the appBuilder/procedure editor "IDE") Thanks in advance
Dominique (609 rep)
Feb 9, 2021, 03:26 PM • Last activity: Mar 3, 2025, 09:04 PM
0 votes
1 answers
616 views
How to delete the primary index of a table in Progress, release 11.6?
I have made a table, containing an integer field, this field being used in the primary index of that table. Now I would like to replace this integer field by a character one. Therefore I need to remove all indexes of that table, including the primary one. Therefore I'm using the data dictionary, but...
I have made a table, containing an integer field, this field being used in the primary index of that table. Now I would like to replace this integer field by a character one. Therefore I need to remove all indexes of that table, including the primary one. Therefore I'm using the data dictionary, but I get following error message: You cannot delete the primary index of a table. How can I proceed? Thanks
Dominique (609 rep)
Mar 30, 2021, 07:21 AM • Last activity: Jan 23, 2025, 03:03 PM
0 votes
1 answers
1690 views
Add a day to a date in Progress OpenEdge db query
I am looking for a way to increment a date value by one day in Progress OpenEdge DB query. I am using the OpenEdge SQL-92 query engine rather than the ABL (4gl) engine. Something similar to how one might do it for a SQL server query would be ideal: --first attempt SELECT DateAdd("d",1,EffDate) FROM...
I am looking for a way to increment a date value by one day in Progress OpenEdge DB query. I am using the OpenEdge SQL-92 query engine rather than the ABL (4gl) engine. Something similar to how one might do it for a SQL server query would be ideal: --first attempt SELECT DateAdd("d",1,EffDate) FROM pub.pv_currrates --another attempt does not work SELECT ADD-INTERVAL(b.BillDate, days, 1) AS one_day_back ... UPDATE: I found this add-interval function, but we can't seem to get it to work correctly.
Daniel L. VanDenBosch (408 rep)
Jan 29, 2021, 04:41 PM • Last activity: Jan 27, 2022, 07:14 AM
0 votes
2 answers
180 views
Left Outer Join possible?
i have a problem which needs to get resolved and i hope some of you can help. i have an article table (Table A) Article Description A43234 desk A42323 paper A43235 chair and a attribute table (Table B) Attribute Article Value height A42323 120cm width A42324 200cm material A42323 wood price A43235 c...
i have a problem which needs to get resolved and i hope some of you can help. i have an article table (Table A) Article Description A43234 desk A42323 paper A43235 chair and a attribute table (Table B) Attribute Article Value height A42323 120cm width A42324 200cm material A42323 wood price A43235 chair not every article has an attribute in table B. But if there is a material attribute entry for an article of Table A then it should be in the result. If there is no material attribute entry then it should be an empty string. The result should be: Article Attribute Value A42323 paper wood A42324 desk "" A42325 chair "" My idea: SELECT a.Article, a.Description, a.DLV, b.Value from tableA a join tableB b on a.Article = b.Article and b.Attribute = 'material' Thanks!
Andre (3 rep)
Jul 15, 2021, 10:25 PM • Last activity: Jul 16, 2021, 03:38 PM
0 votes
1 answers
236 views
Progress Open Edge Union
I am attempting to union together 2 queries in progress DB Unfortunately, this is returning me a syntax error. Are union queries unsupported in progress DB? SELECT 0, 'All' UNION ALL SELECT custcode, custname FROM pub.pv_customer
I am attempting to union together 2 queries in progress DB Unfortunately, this is returning me a syntax error. Are union queries unsupported in progress DB? SELECT 0, 'All' UNION ALL SELECT custcode, custname FROM pub.pv_customer
Daniel L. VanDenBosch (408 rep)
Feb 12, 2021, 04:08 PM • Last activity: Feb 12, 2021, 05:12 PM
1 votes
1 answers
128 views
generate a series of dates in progress-db
I am looking for a way in progress-db to generate a series of dates in the same way I would in PostgreSQL. select date::date from generate_series( '2021-01-07'::date ,'2021-01-12'::date ,'1 day'::interval ) date; Returns the following dataset in rows: > 1/7/2021 , 1/8/2021, 1/9/2021, 1/10/2021, 1/11...
I am looking for a way in progress-db to generate a series of dates in the same way I would in PostgreSQL. select date::date from generate_series( '2021-01-07'::date ,'2021-01-12'::date ,'1 day'::interval ) date; Returns the following dataset in rows: > 1/7/2021 , 1/8/2021, 1/9/2021, 1/10/2021, 1/11/2021, 1/12/2021 I looked in the documentation, but I am unable to find any generate_series keywords or anything like it. Is this something that can be done in this RDBMS? If this is not possible, please let me know.
Daniel L. VanDenBosch (408 rep)
Feb 2, 2021, 02:21 PM • Last activity: Feb 6, 2021, 09:09 PM
0 votes
2 answers
68 views
How can I copy the definition of a field from one table to another at design-time?
I have a table with ten fields, `f1` (being an integer field) to `f10` (being a character field). In between there are other integer, character and date fields. I would like to copy those field definitions to another table, without needing to re-write the whole definitions. I'm working with the Data...
I have a table with ten fields, f1 (being an integer field) to f10 (being a character field). In between there are other integer, character and date fields. I would like to copy those field definitions to another table, without needing to re-write the whole definitions. I'm working with the Data Dictionary, who seems not to cover this feature. **Edit after first answer** The first answer mentions how to do this at runtime, but I'm specifically looking for a solution at design-time. **Edit** I've found there are different commandline utilities which can be used for working with Progress database: ProDB for creating a new database, ProUtil for doing several tasks (but I don't find a ProUtil ). How can I achieve this?
Dominique (609 rep)
Jan 18, 2021, 10:44 AM • Last activity: Jan 19, 2021, 12:08 PM
0 votes
2 answers
1594 views
How can I stop a single Progress OpenEdge server process and not the whole database?
Is there a way to stop a single `_mprosrv` process started by the database broker? All I can find from documentation and google searches are ways to disconnect a single user connection or shut down the entire database. For context, the problem is, that we are running an OpenEdge 10.2 database, that...
Is there a way to stop a single _mprosrv process started by the database broker? All I can find from documentation and google searches are ways to disconnect a single user connection or shut down the entire database. For context, the problem is, that we are running an OpenEdge 10.2 database, that is mostly used by remote 4GL clients and one singular client using SQL over ODBC to run data export queries once a week. After rebooting the entire server in our current configuration, the database started up and broker spawned _mprosrv server processes up to the maximum number of servers allowed for the broker. Therefore it can't start up a _sqlsrv2 process any more, because all the slots are occupied. Even during low usage periods where no remote 4GL clients are connected, the ODBC connection does not succeed, since the idle servers are not shut down to allow new servers to be spawned. Hence the question - can I shut down a single 4GL server process to trigger a new server creation for SQL connections without taking the entire database and application offline?
Tarmo R (111 rep)
Nov 18, 2018, 11:55 AM • Last activity: May 19, 2020, 07:53 AM
0 votes
1 answers
961 views
OpenEdge Progress Replication
There's data sitting in OpenEdge Progress databases. We'd like to replicate that data to a PostgreSQL "datalake" using a software called HVR (high volume replication I think). What the software does is basically install a local agent and replicate data from a source DB to a target DB. Does anybody k...
There's data sitting in OpenEdge Progress databases. We'd like to replicate that data to a PostgreSQL "datalake" using a software called HVR (high volume replication I think). What the software does is basically install a local agent and replicate data from a source DB to a target DB. Does anybody know if Progress allows such a thing? I know it has its own replication mechanisms but that's not what we're looking for.
Unknown_Soldier (1 rep)
Aug 1, 2017, 10:29 AM • Last activity: Sep 27, 2019, 10:14 AM
0 votes
2 answers
67 views
how to open a corrupted progress v9.1e database
How can I open a corrupted PostgreSQL v9.1e database which has data that was added after it was last backed up?
How can I open a corrupted PostgreSQL v9.1e database which has data that was added after it was last backed up?
Canaan Maposa (1 rep)
Dec 16, 2018, 02:40 PM • Last activity: Feb 27, 2019, 09:03 PM
2 votes
1 answers
1604 views
Issuing Inserts/Updates to Progress OpenEdge via ODBC
I'm attempting to build some ETL to integrate our SQL Server environment with a remotely hosted 3rd party app running Progress OpenEdge. I have a linked server to it set up in SQL Server 2014. Selects are working well enough, though I find that using `openquery` is much, much faster than the simpler...
I'm attempting to build some ETL to integrate our SQL Server environment with a remotely hosted 3rd party app running Progress OpenEdge. I have a linked server to it set up in SQL Server 2014. Selects are working well enough, though I find that using openquery is much, much faster than the simpler select * from SERVER.DB.SCHEMA.TABLE syntax. I'm struggling with writes, however. I've found several references for valid update syntax for linked servers, but these all give permissions errors: select * from openquery(SERVER,'update FOO.BAR set "COL" = 0 where "COL" = 1') update fb set [COL] = 0 from SERVER.DB.FOO.BAR fb where [COL] = 1 update openquery(SERVER,'select * from FOO.BAR where "COL" = 1') set [COL] = 0 This syntax is the only one I've found that works: declare @script nvarchar(max) = N'update FOO.BAR set "COL" = 0 where "COL" = 1' execute (@script) at SERVER This works for both inserts and updates, but I can't see a way to load a set of data this way, because I can't reference my local tables. In SSIS, an ODBC connection passes the connectivity test, but fails during initialization: > Error: 0xC0014020 at Package1, Connection manager "SERVER": An ODBC error -1 has occurred. > > Error: 0xC0014009 at Package1, Connection manager "SERVER": There was an error trying to establish an Open > Database Connectivity (ODBC) connection with the database server. > > Error: 0x20F at Data Flow Task, ODBC Destination : The > AcquireConnection method call to the connection manager SERVER failed with error code 0xC0014009. There may be > error messages posted before this with more information on why the > AcquireConnection method call failed. > > Error: 0xC0047017 at Data Flow Task, SSIS.Pipeline: ODBC Destination > failed validation and returned error code 0x80004005. > > Error: 0xC004700C at Data Flow Task, SSIS.Pipeline: One or more > component failed validation. > > Error: 0xC0024107 at Data Flow Task: There were errors during task > validation. Ultimately, I'm searching for a better way to merge/upsert a set of data (anything from a few dozen rows to a couple hundred thousand) without resorting to using RPC to insert/update one row at a time.
SQLFox (1564 rep)
May 6, 2015, 04:16 PM • Last activity: Dec 24, 2018, 12:50 AM
1 votes
1 answers
44 views
locked records progress4gl
I have a query that runs from the sql engine in a progress DB. My problem is when a table or a record is locked from the progress4gl engine, I can't access it from sql engine and the query returns nothing for that lock. Is there any way to access those rows or tables from a query in sql?
I have a query that runs from the sql engine in a progress DB. My problem is when a table or a record is locked from the progress4gl engine, I can't access it from sql engine and the query returns nothing for that lock. Is there any way to access those rows or tables from a query in sql?
Oscar (11 rep)
Oct 17, 2017, 08:32 PM • Last activity: Oct 18, 2017, 09:25 PM
2 votes
6 answers
3232 views
Export data from a CCURE 800/8000 System using a pair of ODBC data sources?
I'm working on a security system called CCURE 800/8000 and trying to export some entrance / exit data from the Activity Monitor that logs when people use their badges to enter and exit the building. There are two ODBC DSNs listed on the machine that controls this...We'll call them DSNNAME and DSNNAM...
I'm working on a security system called CCURE 800/8000 and trying to export some entrance / exit data from the Activity Monitor that logs when people use their badges to enter and exit the building. There are two ODBC DSNs listed on the machine that controls this...We'll call them DSNNAME and DSNNAME_TXT. The DSNNAME uses a Progress OpenEdge 10.2A Driver and the DSNNAME_TXT uses a Microsoft Text Driver (*.txt, *.csv) #DSNNAME The description on the DSNNAME DSN reads CCURE Journal Export DSN, so I am thinking that this connects to the CCURE 800/8000 progress database to pull the information out. It appears to work, as clicking the Test Connect button and entering the username and password result in a Connection Established! dialog box. # DSNNAME_TXT The description on this DSN reads CCURE Journal Export DSN for Time & Attendance I think that this DSN is there to write the exported data to a couple of csv files. The DNSNAME_TXT driver points to a directory in which there is a single file: Schema.ini This file contains the following contents: [timeok.txt] ColNameHeader=False Format=Delimited(;) MaxScanRows=0 CharacterSet=OEM Col1=ID Char Width 255 Col2=NAME Char Width 255 Col3=DATEIN Char Width 255 Col4=DATEOUT Char Width 255 Col5=HHDIFF Float Col6=READERIN Char Width 255 Col7=RNAMEIN Char Width 255 Col8=READEROUT Char Width 255 Col9=RNAMEOUT Char Width 255 Col10=FLAG Integer [timeerr.txt] ColNameHeader=False Format=Delimited(;) MaxScanRows=0 CharacterSet=OEM Col1=ID Char Width 255 Col2=NAME Char Width 255 Col3=ERRDATEIN Char Width 255 Col4=ERRDATEOUT Char Width 255 Col5=ERRHH Float Col6=ERRIN Char Width 255 Col7=ERRNAMEIN Char Width 255 Col8=ERROUT Char Width 255 Col9=ERRNAMEOUT Char Width 255 Col10=ERRDESCR Char Width 255 [schema.ini] ColNameHeader=False Format=CSVDelimited MaxScanRows=0 CharacterSet=OEM The file mentions timeok.txt and timeerr.txt which don't appear anywhere on the machine (I searched the entire hdd), but according to this documentation they should be in the same directory with schema.ini when using the Microsoft Text Driver (*.txt, *.csv). In further detail about the DSN, the options >> button reveals that it's Extensions List is selecting *.*. #CCURE 800/800 Administration Client Inside the Administration Client I'm trying to export a report; as I stated above, I believe that the report was meant to be exported into two files timeok.txt and timeerr.txt To generate the report in the Administration Client: 1. from the menu I click Reports -> Personnel -> Time and Attendance... 1. I select a report called Access from the Select Report list. 1. I click the Run Report button 1. I select a Journal export database by double clicking that textbox 1. There's one called Cards which if I edit it, I can see that the ODBC tab has DSNNAME_TXT set as it's DSN (and that clicking the Test ODBC connection to the Database with the correct username and password) says that the connection was successful. 1. When I click the Progress tab, enter the username and password and click the Test Progress connection to Database I also get a message that it succeeded. 1. On the SQL tab I check off to enable logging, and the documentation states that a log file is generated in C:\CCURE800\4gl\Database\Log\DriverErr0.000001.log which appears to be the case.... 1. Lastly I click the Setup tab and click Export Personnel data... or Export Object data... I get a message that reads Successfully completed Journal Export message but there is no output in either of the files (timeok.txt or timeerr.txt) as I would have expected to be the case in doing so.... 1. If I actually try to run the report, I end up with an error about a missing .ocx file: --------------------------- Error --------------------------- Specified ActiveX control is not registered or the .ocx file was moved from where it was registered. Error occurred in procedure: control_load source\rep_sho_excel.w (6087) --------------------------- OK --------------------------- ...followed by another dialog that reads: --------------------------- Error --------------------------- Microsoft Excel OCX control cannot be loaded. Some components are missing or not registered. (CC-2334) --------------------------- OK --------------------------- (and again no output...though I did use procmon to see what the process was writing out...it looks like it's just a bunch of binary files with no extension (DBI2612a05112) and also a file called cf.lg The error log C:\CCURE800\4gl\Database\Log\DriverErr0.000001.log yields some results, but no errors... like this: [14/07/01@05:09:46.655-0400] P-001972 T-001976 1 4GL -- Log entry types activated: 4GLMessages [14/07/10@05:01:34.542-0400] P-001972 T-001976 1 4GL -- Database CF was disconnected. (1015) [14/07/10@05:02:55.627-0400] P-001148 T-001168 1 4GL -- Logging level set to = 2 [14/07/10@05:02:55.642-0400] P-001148 T-001168 1 4GL -- Log entry types activated: 4GLMessages I've even tried to connect to the DSNNAME Progress ODBC driver using Squirrel SQL but it states that the connection is not open. So needless to say I'm pretty stumped at this point; does anyone have experience with any of these old systems to offer some insight into querying this system?
leeand00 (1722 rep)
Jul 10, 2014, 04:12 PM • Last activity: Jan 11, 2017, 12:33 PM
1 votes
1 answers
1864 views
SSIS creates too many connections to a database
I wonder if anyone had experienced anything similar to the following problem? I have a SSIS package containing 10+ data flow tasks which I'm using to extract data from an OpenEdge 11.3.002/Progress database to SQL Server 2016 via an ODBC driver. However, I've been informed by the dba of the progress...
I wonder if anyone had experienced anything similar to the following problem? I have a SSIS package containing 10+ data flow tasks which I'm using to extract data from an OpenEdge 11.3.002/Progress database to SQL Server 2016 via an ODBC driver. However, I've been informed by the dba of the progress database that I've created so many connections to the Progress db via SSIS that on several occasions they've needed to restart the Progress database to kill all the connections that SSIS has made as no-one else can connect to it anymore. I've never experienced an issue when SSIS makes 'too many connections' to a database so I'm trying to reduce the number of connections it opens to Progress. Approaches I've tried so far: 1. On the connection manager to the Progress DB in SSIS I've set the Retainsameconnection property to true; 2. Maxconcurrentexecutables property is set to 2 (So only two data flow tasks can run concurrently); 3. Enginethreads property is set to 5. But these don't appear to limit the number of connections (enough). Are there any other ways I can reduce the number of connections SSIS makes to another ODBC database to say max 100 connections (And ensure SSIS releases these afterwards)? Currently using: - Progress Openedge db 11.3 to extract data from - Visual Studio 2015 for SSIS packages - SQL Server 2016 to load data into
Hologram (11 rep)
Nov 8, 2016, 02:57 PM • Last activity: Nov 8, 2016, 10:40 PM
0 votes
1 answers
343 views
SSIS for/each loop to ETL tables across databases
I have 100 pre-written SQL Server table insert statements, to pull data from a Progress database via openquery into 100 SQL Server tables e.g. insert into table1 (col1 varchar(50), col2 varchar(10)) select X,Y from aprogresstable insert into table1 (col1 varchar(40), col2 int, col3 varchar(15)) sele...
I have 100 pre-written SQL Server table insert statements, to pull data from a Progress database via openquery into 100 SQL Server tables e.g. insert into table1 (col1 varchar(50), col2 varchar(10)) select X,Y from aprogresstable insert into table1 (col1 varchar(40), col2 int, col3 varchar(15)) select X,Y,Z from anotherprogresstable for 100 tables.. However, this is slow over openquery. Therefore, I'd like to import these data nightly from Progress into existing SQL Server tables using SSIS. What is the best way to achieve this, without needing to create 100 data flow components (e.g. 100 sources, 100 destinations). SQL Server Import/Export wizard is an option here but I've found it has data mapping issues with date fields. **Therefore, is it possible to create a For/Each loop to loop through 100 SQL insert statements via SSIS to pull data from Progress/Push to existing SQL Server Tables?** Thanks!
user27768 (25 rep)
Aug 19, 2016, 04:16 PM • Last activity: Aug 19, 2016, 05:52 PM
0 votes
1 answers
76 views
Prostrct create causes windows batch file to exit
I have a daily job to restore a database from last night's back up before doing other things to it and moving on. I'm trying to automate this with a script, but when I get to the following command the batch file exits - it won't run anything after this command: prostrct create repldb rdb10.st -block...
I have a daily job to restore a database from last night's back up before doing other things to it and moving on. I'm trying to automate this with a script, but when I get to the following command the batch file exits - it won't run anything after this command: prostrct create repldb rdb10.st -blocksize 8192 >> "%logfilename%" 2>&1 So if I put another command on the very next line such as echo boo! then nothing appears. Can anyone advise on how I can get my batch to continue after prostrct create?
BeanFrog (173 rep)
Feb 17, 2016, 12:17 PM • Last activity: Feb 18, 2016, 01:20 AM
1 votes
1 answers
303 views
Partial restore of Progress DB
I have progress .bup files for my databases The environment I am restoring too has less space and because I have no control over this environment I wish to make the databases smaller. To do this I need to exclude certain tables from the restore process. (Alternatively I want to specify which tables...
I have progress .bup files for my databases The environment I am restoring too has less space and because I have no control over this environment I wish to make the databases smaller. To do this I need to exclude certain tables from the restore process. (Alternatively I want to specify which tables to restore.) The list for excluding is much smaller so would make more sense to specify what I wish to exclude certain tables, rather than a list of what must be included.
AquaAlex (131 rep)
Jun 27, 2014, 07:15 AM • Last activity: Jun 27, 2014, 12:34 PM
1 votes
3 answers
3792 views
Select statement is locking a record
We have a process which selects a record from a progress table, then issues an update against that record. If we do not do the select, then the update works all day long. If we do the select, then the update times out. The select query is pretty simple and looks like: select fg."alphakey", n."first-...
We have a process which selects a record from a progress table, then issues an update against that record. If we do not do the select, then the update works all day long. If we do the select, then the update times out. The select query is pretty simple and looks like: select fg."alphakey", n."first-name", n."last-name" from pub.name n inner join pub."family-guardian" fg on (fg."name-id" = n."name-id") where fg."alphakey" = 'somevalue' We've confirmed that if the above statement is not present then it works. However, if the above statement is present then the *UPDATE* fails. The update goes against the name table. Unfortunately, I don't have that code as it executes through a third party. Two questions: - Is this normal for progress? - What is the best way to get around the issue?
ChrisLively (887 rep)
Sep 24, 2012, 04:06 PM • Last activity: May 6, 2014, 05:01 PM
Showing page 1 of 20 total questions