# Preferred database



## Alain De Vos (Jul 15, 2021)

Which database do you prefer to work with if you have the choice?


----------



## Cthulhux (Jul 15, 2021)

- Embedded: SQLite3 (if it's absolutely required to have a database - SQLite3 is far from being fun to work with).
- Server-client: PostgreSQL.


----------



## a6h (Jul 15, 2021)

`ASCII(7)-Flat-File ---> TSV ---> CSV ---|going overboard|---> sqlite3 ---|need more?|---> call for help!`


----------



## SirDice (Jul 15, 2021)

I'm more inclined to use MySQL/MariaDB because I'm more familiar with it. Should really spend some time getting to know PostgreSQL a little better. It's always easier to fallback on something you already know.


----------



## 6502 (Jul 15, 2021)

MS-SQL.


----------



## SirDice (Jul 15, 2021)

6502 said:


> MS-SQL.


Go wash your mouth with soap right now young man!


----------



## Sevendogsbsd (Jul 15, 2021)

I work with MySQL at work - it houses vulnerability data we get from our scanner. Easy to work with. We have MS-SQL instances but they are way too expensive so we try to minimize the number in use. Our scanner is a combo of open source (OWASP ZAP) and in-house written code so sticking to an open source solution has saved my customer $. I haven't worked with MS-SQL since its was in version 7 so can't speak to it now only that it is expensive. This is in my opinion, ridiculous:


```
Standard - per core    $3,586    2 core pack
Standard - server    $899    Server
Standard - CAL    $209    CAL
```

Of course Oracle is more ridiculous but that's Oracle...


----------



## 6502 (Jul 15, 2021)

SirDice said:


> Go wash your mouth with soap right now young man!


Used MySQL for some time in 2000-2001 (now still use it when necessary). Then switched to MS-SQL not of my choice (job requirements). Compared to MySQL, MS-SQL was a limousine. Not used Oracle and cannot compare it. But MS-SQL vs MySQL are like new car compared to car from 1970. Even latest MySQL is worse than MS-SQL 2000 (as a whole - some details of last MySQL may be better compared to old MS-SQL).


----------



## Sevendogsbsd (Jul 15, 2021)

To each his or her own. MySQL works perfectly for us and is easy to use. If I were forced to use MS-SQL then I would have to get used to it. I certainly wouldn't say MySQL is like a 1970's car but that is my opinion.


----------



## 6502 (Jul 15, 2021)

It is my opinion too. I was not happy to change DB I used (MySQL) but later I felt the difference.

I read good things about Postgres but not used it yet in practice. I hope it is significantly better than MySQL.


----------



## Alain De Vos (Jul 15, 2021)

I recently found out postgresql includes a document database with all the features of mongodb


----------



## Zvoni (Jul 15, 2021)

Local file-db: SQLite
Server-db: MySQL

at Work i have to deal with an IBM DB2 running on an iSeries, and writing Queries for DB2 is not fun!


----------



## ralphbsz (Jul 15, 2021)

I used to like Berkeley-DB. That's because it is not a SQL database, but instead a key-value store that is highly optimized, and easily embeddable. Since my problem was very stylized, and I didn't need to support arbitrary queries, only lookup by various keys, that worked really well.

Sadly, I'll abandon it. The main reason is that I'll need multi-threaded (parallel) access to it, and that requires transactions to prevent inconsistencies. And adding transactions to Berkeley DB is pretty nasty; at that point using SQLite is likely much easier. This is the home coding project that I've been avoiding for a year or two now (too tedious), and that forces me to continue running Python 2.x.


----------



## rootbert (Jul 15, 2021)

You mysql users should watch a talk of Hans-Jürgen Schönig from cybertec ... he is doing his talks like a comedian and makes a lot of fun on how mysql handles certain things, just google if you're interested (not sure if his talks in english are equally funny though ...). Of course for various projects I (have to) use mysql, but when it comes do DB servers my heart is with postgres


----------



## hruodr (Jul 15, 2021)

I used MySQL, tested PostgreSQL and like it more, although I do not know if it is more efficient.

What I continuously use is sqlite3 + tcl. For me it is more a programming language and a file format
than a database.


----------



## Sevendogsbsd (Jul 15, 2021)

For clarification I did not choose to use MySQL but one of our devs did. The database in question is very simple with only around 5 tables and is less than 100mb in size. MS-SQL or Oracle would be like driving a bus to the grocery store. We could switch to a smaller database or other one like Postgresql but the developer is no longer with us and we are simply keeping things alive at this point. I have no skill to modify the code that talks to the database or I could change it.


----------



## covacat (Jul 15, 2021)

SITUATION: Users want phone list application

_Technical thug:_  Writes RDBMS in Perl and Smalltalk. Users give up and go back to post-it notes.
_Administrative fascist:_  Oracle. Users give up and go back to post-it notes.
_Maniac:_  Tells the users to use flat files and grep, the way God meant man to keep track of phone numbers. Users give up and go back to post-it notes.
_Idiot:_
% dd ibs=80 if=/dev/rdisk001s7 | grep "Fred"

from https://www.gnu.org/fun/jokes/know.your.sysadmin.en.html


----------



## Alain De Vos (Jul 15, 2021)

You can configure mysql to have one directory per database and one file per table. That is cool.
Postgresql is, never touch any file directly except the .conf files.


----------



## Vull (Jul 15, 2021)

Tested PostgreSQL and MySQL fairly extensively a few years ago, using application software written in PHP. Their syntaxes are different, and particularly so where php interfaces are concerned, so I wrote my own php functions and interfaces to allow them to be used interchangeably. This made it fairly easy to compare their performance, and PostgreSQL outperformed MySQL by a significant margin in terms of speed, and seemed more efficient, reliable, and trouble-free in terms of overall administration.

In 2009-2010, Oracle bought ownership of Sun Microsystems, who, by that time, had themselves already acquired ownership of MySQL. Around that same time, the original open-source provider of MySQL cloned his MySQL implementation off as MariaDB. I never got around to trying out MariaDB, but, instead, eventually stopped using MySQL, which was becoming, in my opinion, more trouble than it was worth. Haven't touched MySQL since.

Also used, and sometimes still use, PhpPgAdmin, which is a fairly useful set of administrative tools written in PHP, but you don't need to write anything in PHP in order to use it. There is (or was?) also PhpMyAdmin for MySQL, which is quite similar to PhpPgAdmin, but I don't think it's written by the same people. There is another GUI front-end to psql for PostgreSQL called PgAdmin, but I've never used it.


----------



## Sevendogsbsd (Jul 15, 2021)

I had forgotten Oracle bought MySQL  They also bought VirtualBox. Not to get off track but remember when VirtualBox was written by an actual company named "InnoTek" which I think was the same as in the movie "Office Space". Sometimes when big companies buy things they get better, other times not.


----------



## astyle (Jul 15, 2021)

Echoing SirDice, MySQL is what I'm familiar with. But with recent CVE's against databases/mysql57, coupled with the fact that SQLite works fine with Akonadi, I like SQLite, too. And Oracle - they simply got creative with the tools they offer. I don't like the fact that they got Java, as well (dependency hell in FreeBSD), but oh, well.


----------



## kpedersen (Jul 15, 2021)

I tend to go with sqlite3 if I can. However if the project is considerable, I jump to MySQL. Mostly because many clients in the past have decided to run this stuff on shared hosting that more commonly offers MySQL above all else. They will end up blaming me if my software is "incompatible" with the provider.


----------



## msplsh (Jul 15, 2021)

I chose Postgres for projects that had to be ported from MSSQL 7 due to high data integrity and it has basically never let me down.  I only use MariaDB (never MySQL) when software doesn't support Postgres... ie: WordPress.  SQLite for little things that can be converted into big things later.


----------



## ccammack (Jul 15, 2021)

I like sqlite too. Has anyone here used RDB(1991) for real work?



> RDB is a fast, portable, relational database management system...The *data is contained in regular UNIX ACSII files*, and so can be manipulated by regular UNIX utilities, e.g. ls, wc, mv, cp, cat, more, less, editors like the RAND editor 'e', head, RCS, etc.


----------



## astyle (Jul 15, 2021)

RDB looks too much like a re-implementation of IBM's DB2... flat-file tables aren't the most reliable thing around.


----------



## ralphbsz (Jul 16, 2021)

A few years ago, someone decided to donate the original source code of "System R" to the Computer History Museum. For those who don't know what this is: The first relational database, a research prototype built by IBM in the late 70s: after Ted Codd invented the "Relational Calculus", a group around Don Chamberlin built an actual system around it, with SQL as the query language. The connection between IBM Research and the Museum was my manager. He started looking for someone who could read the ancient MVS-format backup tape, and it so happened that I had ancient software (from the late 80s) which ran on Unix and decoded the MVS backup tapes (which included converting EBCDIC to ASCII, which is not possible while preserving PL/S syntax). So I got to turn the backup tape turned into a tar file. I have no idea how one can get to the source today.


----------



## astyle (Jul 16, 2021)

ralphbsz said:


> A few years ago, someone decided to donate the original source code of "System R" to the Computer History Museum. For those who don't know what this is: The first relational database, a research prototype built by IBM in the late 70s: after Ted Codd invented the "Relational Calculus", a group around Don Chamberlin built an actual system around it, with SQL as the query language. The connection between IBM Research and the Museum was my manager. He started looking for someone who could read the ancient MVS-format backup tape, and it so happened that I had ancient software (from the late 80s) which ran on Unix and decoded the MVS backup tapes (which included converting EBCDIC to ASCII, which is not possible while preserving PL/S syntax). So I got to turn the backup tape turned into a tar file. I have no idea how one can get to the source today.


Seriously??? Holy shit. If someone is motivated enough, and is capable of connecting the dots, this post contains a truckload of info to get started! For starters, tar is tAR, which is short for tape ARchive... If you succeeded in extracting a tarball from the tape, then just use /bin/untar to do the rest! The original tape is probably over at Computer History Museum, and if you contact them, they just might have the source code available for download as ACII text files. Not only that, there's probably tarballs on the Internet, and Google (with physical headquarters just a couple miles away) will help you find it!


----------



## ralphbsz (Jul 16, 2021)

Sorry, I didn't make myself clear. The original tape (from the late 70s) contained an MVS backup, not a tar file. The original tape was read by a volunteer at the museum using a specialized (modified) tape drive. I don't know where the original tape is now. The result of the binary read of the tape was then sent to me. I decoded the MVS backup format, converted the files from EBCDIC to ASCII, and stored them in a tar file. I know that the tar file is in the archives of the museum. What I mean by "I have no idea how one can" is: I did not keep a copy of the files (as they are not owned by me), and I don't know whether they are available on the public internet. And yes, I'm very familiar with the area on that map: Last week, I had a beer with friends at the "Sports Page" bar, which is in the middle of that map.


----------



## astyle (Jul 16, 2021)

ralphbsz said:


> Sorry, I didn't make myself clear. The original tape (from the late 70s) contained an MVS backup, not a tar file. The original tape was read by a volunteer at the museum using a specialized (modified) tape drive. I don't know where the original tape is now. The result of the binary read of the tape was then sent to me. I decoded the MVS backup format, converted the files from EBCDIC to ASCII, and stored them in a tar file. I know that the tar file is in the archives of the museum. What I mean by "I have no idea how one can" is: I did not keep a copy of the files (as they are not owned by me), and I don't know whether they are available on the public internet. And yes, I'm very familiar with the area on that map: Last week, I had a beer with friends at the "Sports Page" bar, which is in the middle of that map.


So, at this point, it's up to the museum to publish that code, since they've assumed stewardship of it. But I would not be surprised if a copy turns up somewhere on public Internet.


----------



## Datapanic (Jul 16, 2021)

I've been using databases/percona57-server for a while and it seems to be slightly faster than the same versions of MySQL or MariaDB.  Percona Server 8.0 is has been out for a while but not in the ports tree.


----------



## astyle (Jul 16, 2021)

Datapanic said:


> I've been using databases/percona57-server for a while and it seems to be slightly faster than the same versions of MySQL or MariaDB.  Percona Server 8.0 is has been out for a while but not in the ports tree.


Never heard of it until today... even though it's been in ports ever since AMD introduced Ryzen (2017). One sore point for me - some components have never been renamed. Like InnoDB... and the _mysql_ substring is still present in a lot of places -  both Percona and MariaDB devs never bothered to completely hunt down and replace that string in the source code. Sure, there's concerns about breaking some of the API's if you do that blindly. I'm sorry, that's just me being an insufferable skeptic today.


----------



## Alain De Vos (Jul 16, 2021)

I had less trouble using mariadb so i kept using it.


----------



## exeter (Jul 19, 2021)

Alain De Vos said:


> Which database do you prefer to work with if you have the choice?


dBase. Well, in the guise of Harbour Compiler which is a superset of Clipper 5.2. Open source, easy, extensible, flexible. What's not to like? Try it, you never know, you might like it.


----------



## astyle (Jul 19, 2021)

exeter said:


> dBase. Well, in the guise of Harbour Compiler which is a superset of Clipper 5.2. Open source, easy, extensible, flexible. What's not to like? Try it, you never know, you might like it.


Seriously??? that was in use at a small shop where I used to work fresh out of college. It was woefully inadequate even back in 2005, even for a small shop. It was a constant headache fixing broken table files from backup. Yeah, not that hard to figure out the correct fix, because it was Open Source, but broke way too often. I'm still shaking my head at why anyone puts up with that, especially when any RDBMS worth its salt can be accessed from any old ncurses-based front-end.


----------



## mark_j (Jul 19, 2021)

Neubert said:


> I like sqlite too. Has anyone here used RDB(1991) for real work?


I've used Oracle RDB, but that is a completely different beast.


----------



## Jose (Jul 19, 2021)

exeter said:


> dBase. Well, in the guise of Harbour Compiler which is a superset of Clipper 5.2. Open source, easy, extensible, flexible. What's not to like? Try it, you never know, you might like it.


Ashton-Tate Dbase? That takes me back...


----------



## dbdemon (Aug 30, 2021)

Vull said:


> Tested PostgreSQL and MySQL fairly extensively a few years ago, using application software written in PHP. Their syntaxes are different, and particularly so where php interfaces are concerned, so I wrote my own php functions and interfaces to allow them to be used interchangeably. This made it fairly easy to compare their performance, and PostgreSQL outperformed MySQL by a significant margin in terms of speed, and seemed more efficient, reliable, and trouble-free in terms of overall administration.
> 
> In 2009-2010, Oracle bought ownership of Sun Microsystems, who, by that time, had themselves already acquired ownership of MySQL. Around that same time, the original open-source provider of MySQL cloned his MySQL implementation off as MariaDB. I never got around to trying out MariaDB, but, instead, eventually stopped using MySQL, which was becoming, in my opinion, more trouble than it was worth. Haven't touched MySQL since.


If you haven't used MySQL since 2010, and never used MariaDB, then you have missed out on quite a lot. The prevalent opinion around that time was that MySQL/MariaDB was better for performance, and that PostgreSQL was better in terms of SQL features.



Sevendogsbsd said:


> I had forgotten Oracle bought MySQL  They also bought VirtualBox. Not to get off track but remember when VirtualBox was written by an actual company named "InnoTek" which I think was the same as in the movie "Office Space". Sometimes when big companies buy things they get better, other times not.


In the case of MySQL, I think Oracle's takeover has been a good thing, but I'm not sure it would have been so benevolent without MariaDB providing all that healthy competition.


astyle said:


> Never heard of it until today... even though it's been in ports ever since AMD introduced Ryzen (2017). One sore point for me - some components have never been renamed. Like InnoDB... and the _mysql_ substring is still present in a lot of places -  both Percona and MariaDB devs never bothered to completely hunt down and replace that string in the source code. Sure, there's concerns about breaking some of the API's if you do that blindly. I'm sorry, that's just me being an insufferable skeptic today.


I think leaving the "mysql" in there has been a deliberate decision. Percona, or rather 'Percona Server for MySQL' which is the full name (they also have Percona Server for MongoDB etc), is really still MySQL with a number of patches, so I think for them it makes sense to leave the mysql string as is. MariaDB on the other hand is a proper fork, and they have now actually renamed it, so the binaries are now actually called 'mariadb' instead of 'mysql' for the CLI client, and 'mariadbd' for the 'mysqld' server, and so on. But for compatibility reasons they have symbolic links called mysql, mysqld and so on.

My personal preference is MariaDB, because that is what I know the best. I prefer it over MySQL because MariaDB development happens more in the open and better follows the open-source model - compare e.g. MariaDB's Jira to MySQL's bug reporting system. Also, I have major issues with the new release model in MySQL 8.0 where entirely new features are introduced in micro/bugfix/patch releases since this will inevitably also introduce new bugs. Also, downgrading is now no longer officially supported. So if you upgrade to the latest version and run into some sort of show-stopper bug, then you're screwed.

MariaDB thankfully supports downgrading and follows the standard release model where bugfix releases are just that - bugfix releases. So it's a fair assumption that version 10.6.4 is more mature and stable than version 10.6.3.

PostgreSQL is second to none in terms of implementing features from the SQL Standard, and they seem to have improved in other areas including performance. It really is a great great DBMS. The only thing I dislike about it is the condescending attitude of some of its proponents.


----------



## reddy (Sep 5, 2021)

When I have a choice, I prefer to develop greenfield products using CouchDB, a nosql database as the main application database. This makes development much faster and provides great performance in production.

Then, whenever analytics and/or arbitrary queries are needed (for example for business analysis) , I pair it with a SQL database and I use postgres in this case.


----------



## sko (Sep 5, 2021)

At best? none.

If I absolutely have to and the software offers it, sets it up and handles everything: SQLite3

If it needs to be a fully fledged database and I have a choice (but SQLite is none of it): PostgreSQL


I don't like databases.
Databases don't like me.
So generally I try to stay away from them if possible...


----------



## reddy (Jun 15, 2022)

Alain De Vos said:


> I recently found out postgresql includes a document database with all the features of mongodb



There are major differences though:

- Upgrading postgresql is a pain (you basically can't upgrade: you need to export and import your data)
- The high-availability and horizontal scalability features of MongoDB do not have equivalents on postgres
- throughput can be scaled more easily with MongoDB
- The query planner of postgresql is obscure and hard to debug, query planning is much more predictable on mongodb
- Recently, mongodb has added support for GeoJSON, timeseries, and they have said to also have column-oriented analytical features coming later this year.

I used to avoid MongoDB like the plague because of all the horror stories I've heard about it but I have to say they've come a long way. That being said, more than a love for MongoDB, I wanted to point these aspects because people often leave them out when they discuss PostgreSQL. For example I remember how shocked I was when I discovered that postgresql offered no upgrade path and very few people talk about that. This plus the lack of a decent horizontal scalability make it a no-go for a wide range of mission critical operational databases. Ease of management matters.

For operational databases, NoSQL solutions such as MongoDB tend to be a massive productivity booster. However for reporting and advanced analytical usage SQL can be the best choice. That being said, I do run postgresql and mysql but this is mainly because of non-critical third party tools requiring these databases.


----------



## msplsh (Jun 15, 2022)

PostgreSQL can be upgraded across major versions via replication.


----------



## reddy (Jun 16, 2022)

msplsh said:


> PostgreSQL can be upgraded across major versions via replication.


Thank you for pointing this out, last time I checked there was a gotcha related to the fact that not every database object was replicated. Maybe this was related to logical replication vs streaming replication.

Still the upgrade story is too risky for my taste, upgrade in place is a must for a database in my opinion. Otherwise there is too much risk of making mistakes, and every upgrade is a dauting process people will postpone for as long as possible.


----------



## jbo (Jun 16, 2022)

Cthulhux said:


> SQLite3 is far from being fun to work with


I must have missed that memo.
Might be my line of work - but SQLite3 and I hang out together a lot.


----------



## msplsh (Jun 16, 2022)

A reason they did replica upgrades is that you have two copies, instead of one that may go bad during an upgrade and you restore from backup.  Can verify live and kill the replica if bad or drop the old one if it's good.

Also, learning to do replication is the horizontal scaling you're talking about!


----------



## _al (Jun 16, 2022)

I like Titanium 7g, a successor of MDBS (some documents of old MDBS are here - http://www.bitsavers.org/pdf/microDatabaseSystems/)
I worked using Titanium C API. 
I still keep documentation - this is the history now ...:


----------



## astyle (Jun 16, 2022)

Andrey Lanin said:


> I like Titanium 7g, a successor of MDBS (some documents of old MDBS are here - http://www.bitsavers.org/pdf/microDatabaseSystems/)
> I worked using Titanium C API.
> I still keep documentation - this is the history now ...:
> View attachment 14270View attachment 14271View attachment 14272


Wow, nice piece of history! I was a freshman in high school in 1997.


----------



## bakul (Jun 16, 2022)

Alain De Vos said:


> Which database do you prefer to work with if you have the choice?


Do you mean database or database management system (DBMS)? Most of the response talk about their favorite DBMS.


----------



## astyle (Jun 16, 2022)

bakul said:


> Do you mean database or database management system (DBMS)? Most of the response talk about their favorite DBMS.


what's the difference?


----------



## ralphbsz (Jun 17, 2022)

Andrey Lanin said:


> a successor of MDBS (some documents of old MDBS are here - http://www.bitsavers.org/pdf/microDatabaseSystems/)



(in Obi-Wan Kenobi voice) Now that's a name I haven't heard in a long time.

I was using cp/m based micros in the late 70s and early 80s. And one of the amazing things is that in addition to normal software (like Fortran and Cobol compilers, from Microsoft, and a spreadsheet called Visicalc), there was a full-blown database called MDBS III. In a 64K address space! I kept trying to get a copy of it, and never managed.


----------



## kpedersen (Jun 17, 2022)

astyle said:


> what's the difference?


I'm not much of a DB guy but it could be to do with storage engines?
For example MySQL is the DBMS, whereas InnoDB is an example of the DB.
Likewise Oracle's BerkelyDB is the DB whereas SQLite3 can be used as its "DBMS" (more of a frontend API) since 11g R2.

This may be heresy to say to an actual DBA but I feel that for 99% of use-cases these days, on such powerful machines, SQLite is probably enough 
I.e back in the day, running a forums on an embedded DB would not be ideal but now it is possibly quite feasible. Or I am just exposing my lack of knowledge here XD


----------



## astyle (Jun 17, 2022)

kpedersen said:


> I'm not much of a DB guy but it could be to do with storage engines?
> For example MySQL is the DBMS, whereas InnoDB is an example of the DB.
> Likewise Oracle's BerkelyDB is the DB whereas SQLite3 can be used as its "DBMS" (more of a frontend API) since 11g R2.
> 
> ...


Ah, with MySQL you're making a distinction between the MySQL package and the data storage mechanism, which is part of the (R)DBMS. InnoDB is basically a table format specification that got its start with MySQL, but got forked together with MariaDB.

BDB is another table format spec (I thought that one was from BSD, rather than Oracle). SQLite3 is basically a C API to flat-file DB2 table format that was developed by IBM (IIRC). BTW, storage *engines* are not the same thing as storage *formats*. A storage format can be expressed as an XML file, while a storage engine is not amenable to such expression.


----------



## bakul (Jun 17, 2022)

astyle said:


> what's the difference?


Wikipedia covers it well.


----------



## unitrunker (Jun 17, 2022)

DB2, Oracle, MS SQL, Mongo and Aerospike for the day job. I like Postgres and Mongo for pet projects.


----------



## _al (Jun 17, 2022)

ralphbsz said:


> ... there was a full-blown database called MDBS III. In a 64K address space! I kept trying to get a copy of it, and never managed.


I have a copy of Titanium for Windows NT - 24 floppy disks (1.44")    :


Spoiler: Titanium 7g for WinNT



[lanin@freebsd ~/tmp/titanium7g]$ ls -lR -D %F .
...
./01:
total 76
-rw-r--r--  1 lanin  wheel    209 1997-09-30 files.lst
-rw-r--r--  1 lanin  wheel  63488 1998-08-12 INSTALL.EXE
-rw-r--r--  1 lanin  wheel     64 1998-03-16 LEVEL.NO
-rw-r--r--  1 lanin  wheel      9 1998-08-12 SERIAL.NO

./02:
total 1368
-rw-r--r--  1 lanin  wheel     723 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel   23687 1998-03-16 tape.c
-rw-r--r--  1 lanin  wheel   28672 1998-03-16 tbmflp.dll
-rw-r--r--  1 lanin  wheel   26112 1998-03-16 tbmtap.dll
-rw-r--r--  1 lanin  wheel  235008 1998-03-16 tdbmtr.exe
-rw-r--r--  1 lanin  wheel     420 1998-03-16 tdebkapi.def
-rw-r--r--  1 lanin  wheel   28672 1998-03-16 tdebkapi.dll
-rw-r--r--  1 lanin  wheel    9834 1998-03-16 tdebkapi.h
-rw-r--r--  1 lanin  wheel  300288 1998-03-16 tdesrv.exe
-rw-r--r--  1 lanin  wheel   22842 1998-03-16 tdesrv.hlp
-rw-r--r--  1 lanin  wheel  238592 1998-03-16 tdesvc.exe
-rw-r--r--  1 lanin  wheel  402432 1998-03-16 tsvcadm.exe

./03:
total 984
-rw-r--r--  1 lanin  wheel    1148 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel     223 1998-03-16 libentry.obj
-rw-r--r--  1 lanin  wheel    1627 1998-03-16 libmain.obj
-rw-r--r--  1 lanin  wheel   38544 1998-03-16 nwipxspx.dll
-rw-r--r--  1 lanin  wheel   24576 1998-03-16 tde_i.lib
-rw-r--r--  1 lanin  wheel    7022 1998-03-16 tde.def
-rw-r--r--  1 lanin  wheel  143442 1998-03-16 tden_nb.dll
-rw-r--r--  1 lanin  wheel  131202 1998-03-16 tden_np.dll
-rw-r--r--  1 lanin  wheel  142354 1998-03-16 tden_px.dll
-rw-r--r--  1 lanin  wheel  134178 1998-03-16 tden_tp.dll
-rw-r--r--  1 lanin  wheel  105325 1998-03-16 tden_w.lib
-rw-r--r--  1 lanin  wheel  173495 1998-03-16 tdl_w.lib
-rw-r--r--  1 lanin  wheel   25141 1998-03-16 tdn_wnb.lib
-rw-r--r--  1 lanin  wheel    6685 1998-03-16 tdn_wnp.lib
-rw-r--r--  1 lanin  wheel   20023 1998-03-16 tdn_wpx.lib
-rw-r--r--  1 lanin  wheel   10791 1998-03-16 tdn_wtp.lib
-rw-r--r--  1 lanin  wheel     543 1998-03-16 wsocksup.obj

./04:
total 876
-rw-r--r--  1 lanin  wheel     280 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel  100864 1998-03-16 tddl2tdf.exe
-rw-r--r--  1 lanin  wheel  743936 1998-03-16 tdfcomp.exe

./05:
total 1168
-rw-r--r--  1 lanin  wheel    5165 1998-03-16 _bootstp.exe
-rw-r--r--  1 lanin  wheel    7543 1998-03-16 _mssetup.ex_
-rw-r--r--  1 lanin  wheel   26112 1998-03-16 ctl3d95.dll
-rw-r--r--  1 lanin  wheel   26624 1998-03-16 ctl3dnt.dll
-rw-r--r--  1 lanin  wheel   71168 1998-03-16 drvstp32.exe
-rw-r--r--  1 lanin  wheel    3827 1998-03-16 ds16gt.dl_
-rw-r--r--  1 lanin  wheel    4608 1998-03-16 ds32gt.dl_
-rw-r--r--  1 lanin  wheel    1381 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel  199976 1998-03-16 mfc30.dl_
-rw-r--r--  1 lanin  wheel  144994 1998-03-16 msvcrt20.dl_
-rw-r--r--  1 lanin  wheel    1655 1998-03-16 odbc.inf
-rw-r--r--  1 lanin  wheel   13163 1998-03-16 odbc16gt.dl_
-rw-r--r--  1 lanin  wheel   30962 1998-03-16 odbc32.dl_
-rw-r--r--  1 lanin  wheel    2699 1998-03-16 odbc32gt.dl_
-rw-r--r--  1 lanin  wheel    3214 1998-03-16 odbcad32.ex_
-rw-r--r--  1 lanin  wheel    3105 1998-03-16 odbccp32.cp_
-rw-r--r--  1 lanin  wheel   52172 1998-03-16 odbccp32.dl_
-rw-r--r--  1 lanin  wheel   96975 1998-03-16 odbccr32.dl_
-rw-r--r--  1 lanin  wheel   12517 1998-03-16 odbcinst.hl_
-rw-r--r--  1 lanin  wheel   24624 1998-03-16 setup.exe
-rw-r--r--  1 lanin  wheel     413 1998-03-16 setup.lst
-rw-r--r--  1 lanin  wheel   19860 1998-03-16 tdesqism.dl_
-rw-r--r--  1 lanin  wheel   40925 1998-03-16 tdesqlc.hl_
-rw-r--r--  1 lanin  wheel  350930 1998-03-16 tdesqlsm.dl_

./06:
total 656
-rw-r--r--  1 lanin  wheel   5165 1998-03-16 _bootstp.exe
-rw-r--r--  1 lanin  wheel   7543 1998-03-16 _mssetup.ex_
-rw-r--r--  1 lanin  wheel   2356 1998-03-16 cpn16ut.dl_
-rw-r--r--  1 lanin  wheel  14710 1998-03-16 ctl3dv2.dl_
-rw-r--r--  1 lanin  wheel  72624 1998-03-16 drvsetup.exe
-rw-r--r--  1 lanin  wheel   1401 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel     64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel   4122 1998-03-16 nwbind.dl_
-rw-r--r--  1 lanin  wheel   2618 1998-03-16 nwcore.dl_
-rw-r--r--  1 lanin  wheel  17715 1998-03-16 nwipxspx.dl_
-rw-r--r--  1 lanin  wheel   8776 1998-03-16 nwmisc.dl_
-rw-r--r--  1 lanin  wheel  31737 1998-03-16 odbc.dl_
-rw-r--r--  1 lanin  wheel   3000 1998-03-16 odbc.inf
-rw-r--r--  1 lanin  wheel   3221 1998-03-16 odbc16ut.dl_
-rw-r--r--  1 lanin  wheel   3964 1998-03-16 odbcadm.ex_
-rw-r--r--  1 lanin  wheel  54903 1998-03-16 odbccurs.dl_
-rw-r--r--  1 lanin  wheel  56626 1998-03-16 odbcinst.dl_
-rw-r--r--  1 lanin  wheel  12517 1998-03-16 odbcinst.hl_
-rw-r--r--  1 lanin  wheel  24624 1998-03-16 setup.exe
-rw-r--r--  1 lanin  wheel    399 1998-03-16 setup.lst
-rw-r--r--  1 lanin  wheel   9649 1998-03-16 tdesqimu.dl_
-rw-r--r--  1 lanin  wheel  40925 1998-03-16 tdesqlc.hl_
-rw-r--r--  1 lanin  wheel  60794 1998-03-16 tdesqlnb.dl_
-rw-r--r--  1 lanin  wheel  59318 1998-03-16 tdesqlnp.dl_
-rw-r--r--  1 lanin  wheel  61045 1998-03-16 tdesqlpx.dl_
-rw-r--r--  1 lanin  wheel  60821 1998-03-16 tdesqlws.dl_

./07:
total 124
-rw-r--r--  1 lanin  wheel  102400 1998-03-16 etdemo.db
-rw-r--r--  1 lanin  wheel    7176 1998-03-16 etdemo.ddl
-rw-r--r--  1 lanin  wheel    7179 1998-03-16 etdemo.tdf
-rw-r--r--  1 lanin  wheel     309 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no

./08:
total 1040
-rw-r--r--  1 lanin  wheel    5165 1998-03-16 _bootstp.exe
-rw-r--r--  1 lanin  wheel    7543 1998-03-16 _mssetup.ex_
-rw-r--r--  1 lanin  wheel   26112 1998-03-16 ctl3d95.dll
-rw-r--r--  1 lanin  wheel   26624 1998-03-16 ctl3dnt.dll
-rw-r--r--  1 lanin  wheel   71168 1998-03-16 DRVSTP32.EXE
-rw-r--r--  1 lanin  wheel    3827 1998-03-16 ds16gt.dl_
-rw-r--r--  1 lanin  wheel    4608 1998-03-16 ds32gt.dl_
-rw-r--r--  1 lanin  wheel    1475 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel  199976 1998-03-16 mfc30.dl_
-rw-r--r--  1 lanin  wheel  144994 1998-03-16 msvcrt20.dl_
-rw-r--r--  1 lanin  wheel    2560 1998-03-16 odbc.inf
-rw-r--r--  1 lanin  wheel   13163 1998-03-16 odbc16gt.dl_
-rw-r--r--  1 lanin  wheel   30962 1998-03-16 odbc32.dl_
-rw-r--r--  1 lanin  wheel    2699 1998-03-16 odbc32gt.dl_
-rw-r--r--  1 lanin  wheel    3214 1998-03-16 odbcad32.ex_
-rw-r--r--  1 lanin  wheel    3105 1998-03-16 odbccp32.cp_
-rw-r--r--  1 lanin  wheel   52172 1998-03-16 odbccp32.dl_
-rw-r--r--  1 lanin  wheel   96975 1998-03-16 odbccr32.dl_
-rw-r--r--  1 lanin  wheel   12517 1998-03-16 odbcinst.hl_
-rw-r--r--  1 lanin  wheel   24624 1998-03-16 setup.exe
-rw-r--r--  1 lanin  wheel     413 1998-03-16 setup.lst
-rw-r--r--  1 lanin  wheel   19864 1998-03-16 tdesqimu.dl_
-rw-r--r--  1 lanin  wheel   40925 1998-03-16 tdesqlc.hl_
-rw-r--r--  1 lanin  wheel   75170 1998-03-16 tdesqlnb.dl_
-rw-r--r--  1 lanin  wheel   73220 1998-03-16 tdesqlnp.dl_
-rw-r--r--  1 lanin  wheel   68096 1998-03-16 tdesqltp.dl_

./09:
total 1232
-rw-r--r--  1 lanin  wheel     601 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel  825088 1998-03-16 tdesql.exe
-rw-r--r--  1 lanin  wheel   16490 1998-03-16 tdesql.hlp
-rw-r--r--  1 lanin  wheel   39936 1998-03-16 tdnsqlnb.dll
-rw-r--r--  1 lanin  wheel   36352 1998-03-16 tdnsqlnp.dll
-rw-r--r--  1 lanin  wheel   37888 1998-03-16 tdnsqltp.dll
-rw-r--r--  1 lanin  wheel   79360 1998-03-16 tsqmtrnb.exe
-rw-r--r--  1 lanin  wheel   74752 1998-03-16 tsqmtrnp.exe
-rw-r--r--  1 lanin  wheel   67072 1998-03-16 tsqmtrtp.exe

./10:
total 228
-rw-r--r--  1 lanin  wheel    497 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel     64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel  83346 1998-03-16 tdbmtr.exe
-rw-r--r--  1 lanin  wheel  21417 1998-03-16 tdnetclm.exe
-rw-r--r--  1 lanin  wheel  20967 1998-03-16 tdnetcnb.exe
-rw-r--r--  1 lanin  wheel  30495 1998-03-16 tdnetcnp.exe
-rw-r--r--  1 lanin  wheel  33417 1998-03-16 tdnetcnw.exe
-rw-r--r--  1 lanin  wheel  19475 1998-03-16 tdnetcpx.exe

./11:
total 980
-rw-r--r--  1 lanin  wheel     503 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel  142848 1998-03-16 tdbmtrnb.exe
-rw-r--r--  1 lanin  wheel  127488 1998-03-16 tdbmtrnp.exe
-rw-r--r--  1 lanin  wheel  132096 1998-03-16 tdbmtrtp.exe
-rw-r--r--  1 lanin  wheel  203264 1998-03-16 tden_nb.dll
-rw-r--r--  1 lanin  wheel  188416 1998-03-16 tden_np.dll
-rw-r--r--  1 lanin  wheel  189440 1998-03-16 tden_tp.dll

./12:
total 80
-rw-r--r--  1 lanin  wheel   3249 1998-03-16 cspcode.h
-rw-r--r--  1 lanin  wheel    608 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel     64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel    506 1998-03-16 makefile.sam
-rw-r--r--  1 lanin  wheel   9976 1998-03-16 ops.c
-rw-r--r--  1 lanin  wheel  22419 1998-03-16 sampcsp.c
-rw-r--r--  1 lanin  wheel   8705 1998-03-16 sampcsp.dat
-rw-r--r--  1 lanin  wheel   1493 1998-03-16 sampcsp.h
-rw-r--r--  1 lanin  wheel   8627 1998-03-16 tdefcn.h

./13:
total 144
-rw-r--r--  1 lanin  wheel   6740 1998-03-16 cspcode.c
-rw-r--r--  1 lanin  wheel   3249 1998-03-16 cspcode.h
-rw-r--r--  1 lanin  wheel  26999 1998-03-16 cspsql.c
-rw-r--r--  1 lanin  wheel    428 1998-03-16 cspsql.mak
-rw-r--r--  1 lanin  wheel    723 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel     64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel    544 1998-03-16 makefile.csp
-rw-r--r--  1 lanin  wheel   9976 1998-03-16 ops.c
-rw-r--r--  1 lanin  wheel   1493 1998-03-16 sampcsp.h
-rw-r--r--  1 lanin  wheel  19427 1998-03-16 tdcspinf.obj
-rw-r--r--  1 lanin  wheel  51107 1998-03-16 tde_csp.h

./14:
total 80
-rw-r--r--  1 lanin  wheel   3249 1998-03-16 cspcode.h
-rw-r--r--  1 lanin  wheel    652 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel     64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel    573 1998-03-16 makefile.sam
-rw-r--r--  1 lanin  wheel   9976 1998-03-16 ops.c
-rw-r--r--  1 lanin  wheel  22419 1998-03-16 sampcsp.c
-rw-r--r--  1 lanin  wheel   8705 1998-03-16 sampcsp.dat
-rw-r--r--  1 lanin  wheel   1493 1998-03-16 sampcsp.h
-rw-r--r--  1 lanin  wheel   8627 1998-03-16 tdefcn.h

./15:
total 528
-rw-r--r--  1 lanin  wheel     492 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel     683 1998-03-16 nlibmain.obj
-rw-r--r--  1 lanin  wheel    7028 1998-03-16 tde.def
-rw-r--r--  1 lanin  wheel   30352 1998-03-16 tden_nb.lib
-rw-r--r--  1 lanin  wheel   10056 1998-03-16 tden_np.lib
-rw-r--r--  1 lanin  wheel   12702 1998-03-16 tden_tp.lib
-rw-r--r--  1 lanin  wheel  413118 1998-03-16 tdenc.lib

./16:
total 608
-rw-r--r--  1 lanin  wheel     341 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel  519936 1998-03-16 tdenet.exe
-rw-r--r--  1 lanin  wheel   14050 1998-03-16 tdenet.hlp
-rw-r--r--  1 lanin  wheel   39936 1998-03-16 tdenettp.dll

./17:
total 476
-rw-r--r--  1 lanin  wheel    7176 1998-03-16 etdemo.ddl
-rw-r--r--  1 lanin  wheel     501 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel    1114 1998-03-16 sample.ddl
-rw-r--r--  1 lanin  wheel  383232 1998-03-16 tddl.exe
-rw-r--r--  1 lanin  wheel   13838 1998-03-16 tde.err
-rw-r--r--  1 lanin  wheel   42496 1998-03-16 tderr.exe
-rw-r--r--  1 lanin  wheel   19337 1998-03-16 tdutil.err

./18:
total 412
-rw-r--r--  1 lanin  wheel     325 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel   13838 1998-03-16 tde.err
-rw-r--r--  1 lanin  wheel  372992 1998-03-16 tdrcv.exe
-rw-r--r--  1 lanin  wheel   19337 1998-03-16 tdutil.err

./19:
total 1312
-rw-r--r--  1 lanin  wheel     841 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel   23687 1998-03-16 tape.c
-rw-r--r--  1 lanin  wheel   28672 1998-03-16 tbmflp.dll
-rw-r--r--  1 lanin  wheel   26112 1998-03-16 tbmtap.dll
-rw-r--r--  1 lanin  wheel   10032 1998-03-16 tdaddsu.err
-rw-r--r--  1 lanin  wheel   15372 1998-03-16 tdaddsu.ert
-rw-r--r--  1 lanin  wheel  371456 1998-03-16 tdaddsu.exe
-rw-r--r--  1 lanin  wheel   40500 1998-03-16 tdbadm.err
-rw-r--r--  1 lanin  wheel   50876 1998-03-16 tdbadm.ert
-rw-r--r--  1 lanin  wheel  617216 1998-03-16 tdbadm.exe
-rw-r--r--  1 lanin  wheel   13838 1998-03-16 tde.err
-rw-r--r--  1 lanin  wheel     420 1998-03-16 tdebkapi.def
-rw-r--r--  1 lanin  wheel   28672 1998-03-16 tdebkapi.dll
-rw-r--r--  1 lanin  wheel    9834 1998-03-16 tdebkapi.h
-rw-r--r--  1 lanin  wheel   37376 1998-03-16 tdgenerr.exe

./20:
total 1084
-rw-r--r--  1 lanin  wheel     378 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel    9007 1998-03-16 tdbrs.err
-rw-r--r--  1 lanin  wheel  387840 1998-03-16 tdbrs.exe
-rw-r--r--  1 lanin  wheel  344320 1998-03-16 tdecomp.exe
-rw-r--r--  1 lanin  wheel  349440 1998-03-16 tdregen.exe

./21:
total 196
-rw-r--r--  1 lanin  wheel     381 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel   13838 1998-03-16 tde.err
-rw-r--r--  1 lanin  wheel  153600 1998-03-16 tdimln.exe
-rw-r--r--  1 lanin  wheel   19337 1998-03-16 tdutil.err

./22:
total 184
-rw-r--r--  1 lanin  wheel    270 1998-03-16 books
-rw-r--r--  1 lanin  wheel  20553 1998-03-16 books.c
-rw-r--r--  1 lanin  wheel    395 1998-03-16 books.def
-rw-r--r--  1 lanin  wheel    918 1998-03-16 books.h
-rw-r--r--  1 lanin  wheel   3638 1998-03-16 books.rc
-rw-r--r--  1 lanin  wheel    418 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel     64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel    413 1998-03-16 sample.h
-rw-r--r--  1 lanin  wheel  91146 1998-03-16 tddl2c.exe
-rw-r--r--  1 lanin  wheel  37649 1998-03-16 tde_api.h

./23:
total 1200
-rw-r--r--  1 lanin  wheel    5604 1998-03-16 about.frm
-rw-r--r--  1 lanin  wheel    5168 1998-03-16 aboutbox.frm
-rw-r--r--  1 lanin  wheel    9534 1998-03-16 addbook.frm
-rw-r--r--  1 lanin  wheel   10205 1998-03-16 addkey2.frm
-rw-r--r--  1 lanin  wheel   11120 1998-03-16 biograph.frm
-rw-r--r--  1 lanin  wheel    9556 1998-03-16 bookinfo.frm
-rw-r--r--  1 lanin  wheel   19496 1998-03-16 books.frm
-rw-r--r--  1 lanin  wheel     570 1998-03-16 books.mak
-rw-r--r--  1 lanin  wheel   13874 1998-03-16 dbkey.frm
-rw-r--r--  1 lanin  wheel   11851 1998-03-16 dbstats.frm
-rw-r--r--  1 lanin  wheel    3409 1998-03-16 ddltbox.frm
-rw-r--r--  1 lanin  wheel    3515 1998-03-16 ddltext.frm
-rw-r--r--  1 lanin  wheel    6810 1998-03-16 deptfind.frm
-rw-r--r--  1 lanin  wheel   24053 1998-03-16 empadd.frm
-rw-r--r--  1 lanin  wheel    6093 1998-03-16 empfind.frm
-rw-r--r--  1 lanin  wheel   24063 1998-03-16 empview.frm
-rw-r--r--  1 lanin  wheel   52584 1998-03-16 epbase.frm
-rw-r--r--  1 lanin  wheel    1859 1998-03-16 etdemo.bas
-rw-r--r--  1 lanin  wheel    7176 1998-03-16 etdemo.ddl
-rw-r--r--  1 lanin  wheel     677 1998-03-16 etdemo.mak
-rw-r--r--  1 lanin  wheel    5355 1998-03-16 exempt.frm
-rw-r--r--  1 lanin  wheel    2441 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel    3026 1998-03-16 global.bas
-rw-r--r--  1 lanin  wheel    1477 1998-03-16 globals.bas
-rw-r--r--  1 lanin  wheel    7051 1998-03-16 keywordi.frm
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel   67202 1998-03-16 load.frm
-rw-r--r--  1 lanin  wheel    6266 1998-03-16 loadcsp.frm
-rw-r--r--  1 lanin  wheel    6653 1998-03-16 nonexemp.frm
-rw-r--r--  1 lanin  wheel    5844 1998-03-16 sales.frm
-rw-r--r--  1 lanin  wheel   12348 1998-03-16 samphlp2.hlp
-rw-r--r--  1 lanin  wheel    4968 1998-03-16 sample.bas
-rw-r--r--  1 lanin  wheel   25600 1998-03-16 sample.db
-rw-r--r--  1 lanin  wheel    1114 1998-03-16 sample.ddl
-rw-r--r--  1 lanin  wheel    8101 1998-03-16 stats.frm
-rw-r--r--  1 lanin  wheel   11368 1998-03-16 taskadd.frm
-rw-r--r--  1 lanin  wheel    6011 1998-03-16 taskfind.frm
-rw-r--r--  1 lanin  wheel  102400 1998-03-16 tddl2vb.exe
-rw-r--r--  1 lanin  wheel   42618 1998-03-16 tde_api.txt
-rw-r--r--  1 lanin  wheel  203264 1998-03-16 tden_nb.dll
-rw-r--r--  1 lanin  wheel  188416 1998-03-16 tden_np.dll
-rw-r--r--  1 lanin  wheel  189440 1998-03-16 tden_tp.dll
-rw-r--r--  1 lanin  wheel   17459 1998-03-16 tidbopn.frm

./24:
total 908
-rw-r--r--  1 lanin  wheel     651 1998-03-16 files.lst
-rw-r--r--  1 lanin  wheel      64 1998-03-16 level.no
-rw-r--r--  1 lanin  wheel   12326 1998-03-16 sam2db.c
-rw-r--r--  1 lanin  wheel   11536 1998-03-16 sample.c
-rw-r--r--  1 lanin  wheel    6832 1998-03-16 samplein.dat
-rw-r--r--  1 lanin  wheel   99840 1998-03-16 tddl2c.exe
-rw-r--r--  1 lanin  wheel   39867 1998-03-16 tde_api.h
-rw-r--r--  1 lanin  wheel  153616 1998-03-16 tde_i.lib
-rw-r--r--  1 lanin  wheel  203264 1998-03-16 tden_nb.dll
-rw-r--r--  1 lanin  wheel  188416 1998-03-16 tden_np.dll
-rw-r--r--  1 lanin  wheel  189440 1998-03-16 tden_tp.dll



I worked with it from Windows NT 4.0 using VC 5.0.
In general, Titanium supported various OS and languages:


----------



## astyle (Jun 17, 2022)

bakul said:


> Wikipedia covers it well.


Sorry, I'd like to challenge you for the links here. If you read Wikipedia for the definition, you will discover that terms 'Database' and 'Relational Database Management System' are normally used interchangeably. And I frankly think it's on you to get my attention to information to the contrary. It's not my job to go dig it up. That being said, I'll be happy to read the information you dig up for me.


----------



## jbo (Jun 17, 2022)

astyle said:


> terms 'Database' and 'Relational Database Management System'


While I'm not going to bother commenting on the Wikipedia stuff - one thing I'd like to point out is that not every database is a _Relational_ Database. There are plenty of non-relational databases out there.


----------



## astyle (Jun 17, 2022)

jbodenmann said:


> While I'm not going to bother commenting on the Wikipedia stuff - one thing I'd like to point out is that not every database is a _Relational_ Database. There are plenty of non-relational databases out there.


Non-relational databases are just another data storage format. You can still set up query engines and define data relationships even if you use MongoDB.  Nothing wrong with non-relational databases, they have their place at the table, it's good to know about them, and to use them where appropriate. If they solve the puzzle for you, great. My point is, it's important to recognize them for what they are, and where they fit in the computing stack.


----------



## bakul (Jun 17, 2022)

astyle said:


> the definition, you will discover that terms 'Database' and 'Relational Database Management System' are normally used interchangeably


There is increasing sloppiness in how people use words but what you write here is not true. If you don't like wikipedia there are other more authoritative sources such as database textbooks that you can look up.


----------



## hruodr (Jun 17, 2022)

jbodenmann said:


> There are plenty of non-relational databases out there.


For example ldap directories.


----------



## jbo (Jun 17, 2022)

astyle said:


> You can still set up query engines and define data relationships


This would strongly defy the purpose of using a non-relational database in the first place.
A few years ago I was handed over a customer project "to fix some problems" where they did exactly that. I still feel the pain to this day.


----------



## astyle (Jun 17, 2022)

I tried reading up on 'Non-relational databases'.  A good explanation is found here: https://www.pluralsight.com/blog/software-development/relational-vs-non-relational-databases .


> Instead of the Structure Query Language (SQL) used by relational databases, the NoSQL database uses Object-relational-mapping (ORM).  The concept of ORM is the ability to write queries using your preferred programming language.  Some of the more popular ORMs are Java, Javascript, .NET and PHP.



You can treat NoSQL queries as something that is de-coupled from the storage and everything else. In traditional RDBMS packages, query engines and storage formats are part of the same package. NoSQL simply removes the requirement that they be part of the same package. You can mix and match components, as long as you have usable API.



jbodenmann said:


> This would strongly defy the purpose of using a non-relational database in the first place.
> A few years ago I was handed over a customer project "to fix some problems" where they did exactly that. I still feel the pain to this day.


To me, this sounds like the problem was not framed very well in the first place.  For example, where in the computing stack do you even decide to set up the query engine? The query engine can be implemented as something on the client laptop that works with downloaded data. Or it can be on the server, eating up the processor cycles (and slow the data download in the first place).


----------



## astyle (Jun 17, 2022)

bakul said:


> There is increasing sloppiness in how people use words but what you write here is not true. If you don't like wikipedia there are other more authoritative sources such as database textbooks that you can look up.


Still no links or other info coming from you to the contrary. I still have my college textbooks about databases. I did quite well in those classes, BTW.


----------



## Alain De Vos (Jun 17, 2022)

An example of a non-relational database.


			http://fallabs.com/tokyocabinet/tokyoproducts.pdf


----------



## hruodr (Jun 17, 2022)

astyle said:


> You can treat NoSQL queries as something that is de-coupled from the storage and everything else.


Or treat as nothing defined. Just data structures that can be saved, and access to them with a programming language. It is sure very wise to do that. We do it continuously, we open, seek, read, write and close files. What else can a nosql db be? But typical from computer scientists is to make big stories with pretty names for nothing special.

Indeed, sql as a language to query tables, is something very special and powerful. Big dbms cannot be easily embedded in a small program, but sqlite3 is fantastic, then you have two languages, the one of the program and sql. Why not if tables are adequate?


----------



## astyle (Jun 17, 2022)

hruodr said:


> Or treat as nothing defined. Just data structures that can be saved, and access to them with a programming language. It is sure very wise to do that


To me, that means extra programming efforts to define all the needed details yourself. Kinda reminds me of C, where every variable/data structure needs to be declared, defined, and initialized before you can use it. 


Alain De Vos said:


> An example of a non-relational database.
> 
> 
> http://fallabs.com/tokyocabinet/tokyoproducts.pdf


Quote from Wikipedia's entry on B-trees: (https://en.wikipedia.org/wiki/B-tree)


> The B-tree remains the standard index implementation in almost all relational databases, and many nonrelational databases use them too.


----------



## astyle (Jun 17, 2022)

hruodr said:


> Or treat as nothing defined. Just data structures that can be saved, and access to them with a programming language. It is sure very wise to do that. We do it continuously, we open, seek, read, write and close files. What else can a nosql db be? But typical from computer scientists is to make big stories with pretty names for nothing special.
> 
> Indeed, sql as a language to query tables, is something very special and powerful. Big dbms cannot be easily embedded in a small program, but sqlite3 is fantastic, then you have two languages, the one of the program and sql. Why not if tables are adequate?


SQLite handles SQL95 queries just fine, thank you.


----------



## ralphbsz (Jun 17, 2022)

astyle said:


> Non-relational databases are just another data storage format.


No, non-relational databases are both a storage format, and a whole data management product. They are actually significantly older than relational databases. Two examples: First, IBM IMS (a hierarchical, non-relational database) started shipping in 1966; the first relational database prototype (System R) was created in the mid- to late- 1970s. Another type of database that came before relational was network (and by that I don't mean that it has anything to do with networking in the TCP/IP sense, but that it uses a network of links between data items to describe the data). You could say that this is old-fashioned and irrelevant today, except for the fact that pre-relational databases still make their vendors billions of $. I'm going to bet that the revenue of IBM IMS alone is at least 10x larger than the revenue of all companies providing FreeBSD services.

Today, there is a whole lot of non-relational databases, they are typically called NoSQL. It's quite the hip thing. Lots of money going into it, and lots of talks about them at conferences. They typically power the backend of web workloads, and big data applications.

And now the anecdote: I started programming commercial solutions in COBOL and RPB-II in the late 70s, and I used "databases" (which in those days were mostly key-value indexed files, cunningly stitched together). Then when I started studying in 1980, I signed up for a database class (it was sort of an advanced computer class). The professor started by pointing out that there is this new thing called "relational" databases, but it isn't clear whether it will ever succeed, so he was going to teach only hierarchical databases. It was a theory class (without programming homework), and I dropped it after a few lectures, since it didn't seem relevant to what I wanted to do.


----------



## hruodr (Jun 17, 2022)

astyle said:


> SQLite handles SQL95 queries just fine, thank you.



It is less about that, see:





_View: https://www.youtube.com/watch?v=Jib2AmRb_rk_


----------



## astyle (Jun 17, 2022)

ralphbsz said:


> No, non-relational databases are both a storage format, and a whole data management product. They are actually significantly older than relational databases. Two examples: First, IBM IMS (a hierarchical, non-relational database) started shipping in 1966; the first relational database prototype (System R) was created in the mid- to late- 1970s. Another type of database that came before relational was network (and by that I don't mean that it has anything to do with networking in the TCP/IP sense, but that it uses a network of links between data items to describe the data). You could say that this is old-fashioned and irrelevant today, except for the fact that pre-relational databases still make their vendors billions of $. I'm going to bet that the revenue of IBM IMS alone is at least 10x larger than the revenue of all companies providing FreeBSD services.
> 
> Today, there is a whole lot of non-relational databases, they are typically called NoSQL. It's quite the hip thing. Lots of money going into it, and lots of talks about them at conferences. They typically power the backend of web workloads, and big data applications.
> 
> And now the anecdote: I started programming commercial solutions in COBOL and RPB-II in the late 70s, and I used "databases" (which in those days were mostly key-value indexed files, cunningly stitched together). Then when I started studying in 1980, I signed up for a database class (it was sort of an advanced computer class). The professor started by pointing out that there is this new thing called "relational" databases, but it isn't clear whether it will ever succeed, so he was going to teach only hierarchical databases. It was a theory class (without programming homework), and I dropped it after a few lectures, since it didn't seem relevant to what I wanted to do.


What IBM  had back then is easy to see as a storage format that had everything else developed around it, including queries and data relations.









						A Timeline of Database History | Quickbase
					

Here's the history of databases in an easy-to-read timeline, starting with the first computerized databases in the 1960s to the powerful technologies of today.




					www.quickbase.com
				












						IBM Db2 - Wikipedia
					






					en.wikipedia.org
				



I still find your essays interesting, Professor ralphbsz .


----------



## dbdemon (Jun 18, 2022)

bakul said:


> Do you mean database or database management system (DBMS)?





astyle said:


> what's the difference?


'Database' may mean several slightly different things. Usually, when tech people talk about databases they mean DBMSes. But 'database management system' is a bit long for use in conversation, so personally I prefer just 'database system' as I feel the 'management' bit is implied and superfluous to spell out.

There are two other common meanings of 'database' besides DBMS:

The collection of tables, columns, the data inside these, as well as other objects such as views and stored procedures that reside inside a particular instance of an DBMS. Typically, the things that can be backed up with programs such as mysqldump, mariadb_dump, mydumper, pg_dump and so on.
'Database' can sometimes also just mean a collection of data, e.g. text files or image files, maybe stored in a directory structure, maybe curated by a researcher or software developer. There is no 'management system' here, just data, as the management is done manually by the  curator. Such "databases" can be used e.g. for software testing or to show how a particular software changes/improves with newer versions.  

Disclaimer: This is based on personal experience and opinion so mileage may vary!


----------



## Phishfry (Jun 18, 2022)

RRD because life is FIFO









						RRDtool - Wikipedia
					






					en.wikipedia.org


----------



## astyle (Jun 18, 2022)

Phishfry said:


> RRD because life is FIFO
> 
> 
> 
> ...


RRD is not a database. You can use MySQL as a backend


----------



## astyle (Jun 19, 2022)

dbdemon said:


> 'Database' may mean several slightly different things. Usually, when tech people talk about databases they mean DBMSes. But 'database management system' is a bit long for use in conversation, so personally I prefer just 'database system' as I feel the 'management' bit is implied and superfluous to spell out.
> 
> There are two other common meanings of 'database' besides DBMS:
> 
> ...


Ummmm... in your post, #1 can be described as a database instance (https://en.wikipedia.org/wiki/Instance_(computer_science)) on a server. Actual tables, and related programs to make use of contents. #2 can be described as a dataset. (https://en.wikipedia.org/wiki/Data_set) These are actual terms with a formal definition.


----------



## Vull (Jun 19, 2022)

A database doesn't need to be computerized. Phone books, general ledgers, recipe boxes, and Rolodex organizers are all examples of databases. The data doesn't even need to be _organized_ although it certainly is very convenient when it is.






						database - Wiktionary
					






					en.wiktionary.org


----------



## astyle (Jun 19, 2022)

Vull said:


> A database doesn't need to be computerized. Phone books, general ledgers, recipe boxes, and Rolodex organizers are all examples of databases. The data doesn't even need to be _organized_ although it certainly is very convenient when it is.
> 
> 
> 
> ...


Sorry, but I'd quibble with that. I think that _digitizing_ and _organizing_ data are the very essence of a database. Even if you have a 'Divide and Conquer' approach to looking through a Rolodex organizer - it's still not a digital thing, so therefore not a 'database'. 

Even if Rolodex functionality were replicated in a computer, it would amount to browsing scanned images of the same cards using Gwenview or Dolphin without a search feature. Nobody would call that a database, I'd think. Just a directory where files are dumped, like /etc.


----------



## dbdemon (Jun 19, 2022)

astyle said:


> Ummmm... in your post, #1 can be described as a database instance (https://en.wikipedia.org/wiki/Instance_(computer_science)) on a server. Actual tables, and related programs to make use of contents. #2 can be described as a dataset. (https://en.wikipedia.org/wiki/Data_set) These are actual terms with a formal definition.


Re #1: You can of course say 'database instance', but then you risk that someone might think you mean 'DBMS instance' which is different as it also includes the software needed to manage the database. Besides, my definition is supported by SQL - is that formal enough for you? 
	
	



```
CREATE DATABASE foo;
```
 You can then create objects inside foo (tables, views, stored programs, ...) and insert data into the tables. All that is one database. In fact, you often have multiple such databases running on a single DBMS instance. And I believe it's a similar story for noSQL database systems.
Re #2: Agreed, 'data set' is probably a better term for this. Sadly, that doesn't prevent people from using/misusing "database" to describe the same thing, though!


----------



## astyle (Jun 19, 2022)

dbdemon said:


> Re #1: You can of course say 'database instance', but then you risk that someone might think you mean 'DBMS instance' which is different as it also includes the software needed to manage the database. Besides, my definition is supported by SQL - is that formal enough for you?
> 
> 
> 
> ...


With the SQL statement in your post, you create a 'database instance' that is then available to be managed by the DBMS. SQL treats keyword 'DATABASE' as shorthand for 'database instance'. Kind of like telling Kate to create a text file that can then be edited by Kate, nano, or ed.

There's no such thing as 'DBMS instance'. DBMS is the whole package, like databases/mysql57-server that you install to get the ball rolling. I guess you can make a copy of the package for installation, and call that 'DBMS instance', or get a licensed copy of Oracle 11g DBMS on a DVD.

Traditional SQL systems put everything into one package, and may offer an API for other programming languages. NoSQL removes the requirement that everything needs to be part of the same package, allowing you to mix and match components to suit the puzzle at hand. Thanks to that, standards compliance got broken. Useful, out-of-the-box ideas needed a new name, and a new set of standards just to gain traction and credibility. Nothing bad about it, but a formal distinction needed to be made and acknowledged. IPv4 vs IPv6 follows the same pattern - new standards keep coming out as ideas gain traction.

Sometimes, you can understand from context that ppl mean 'dataset' when they say 'database'. 'Database' is kind of an umbrella term that is easier for the public to understand in a casual conversation. But when you're ready to get your hands dirty actually working with a database, it helps to have a decent handle on pretty in-depth knowledge - including making a distinction between different terms.


----------

