Epi-Info / Epi-Info-Community-Edition

Other
19 stars 10 forks source link

Fully implement PostgreSQL #12

Open cdc-dpbrown opened 1 month ago

cdc-dpbrown commented 1 month ago

Epi Info 7 can use either MS SQL Server or Access as its backend database and host an Epi Info 7 project. Additionally, Epi Info 7 can read and analyze data in other databases and flat files like Mongo DB, MySQL, PostgreSQL, Excel, and CSV files. The later have not been completely implemented in Epi Info 7 to allow them to be used to contain an Epi Info 7 project.

It would be helpful to our end-users to have another full-function database option because although Microsoft Access is basically free, it can’t be hosted on a server like MS SQL Server. The downside to MS SQL Server is that it is expensive and may negate the benefit of a free Epi Info 7 to some of our limited resource end-users. PostgreSQL is a free and open-source relational databases that are often found at hosting sites and are already partially implemented in Epi Info 7.

The classes that handle interactions with the databases implement common interfaces: IdbDriverFactory, IDataSource, and DbDriverBase:IDbDriver. MS SQL Server and MS Access fully implement the interfaces whereas the others only implement enough to read the data for analysis.