Under the Hood - Database Formats

EZSurvey uses a DBF database to store your data. DBF is a fixed-length format. This means that each question has a limit for the number of characters that can be stored in each answer. EZSurvey can also use delimited ASCII files and SQL databases (In EZSPro with ODBC).

DBF (xBase) Files:

You should make the maximum length of write-in questions less than 250 characters for compatibility with the dBase standard. If you want, you can make response lengths up to 16,000 characters, but you will lose the ability to open the database in other programs. Clipper and FoxBase use the same format for long fields as EZSurvey does.

Multiple choice questions (single/multiple response, single/multiple list) store only the response codes in the database, separated by commas. For example, if the question was:

What fruit do you like?
1=Apples
2=Bananas
3=Oranges

and the answer was Apples and Oranges, the database entry would look like this:

1, 3

This saves disk space and makes analysis calculations much faster. It also means that you can change the text associated with a response whenever you want -- as far as the database knows, only the codes (which you don't see) have to match.

ASCII Files:

An exported tab-delimited file (ASC) will look like this:

NAME PHONE COLOR DEPT COMMENT
Alice 555-2342 R,G 1 Corner office
Bob 555-6236 B,G 3 She said, "Hi"

There are no extraneous delimiters in a tab-delimited file.

An exported comma-delimited file (CSV) will look like this:

NAME,PHONE,COLOR,DEPT,COMMENT
Alice,555-2342, "R,G",1,Corner office
Bob,555-6236, "B,G", 3, "She said, ""Hi"""

Quotation marks are added around any field containing commas or quotation marks.

When EZSurvey imports a database, any line (other than the first line) beginning with a # character will be ignored. This is done for compatibility with SuperMongo.

SQL Databases (through ODBC):

EZSurvey Pro has been designed to use databases from other software vendors, using the Open Database Connectivity Protocol (ODBC). To use EZSurvey Pro, you must have an ODBC manager installed. Since all database programs are idiosyncratic, EZSurvey has been optimized to work specifically with Oracle, Sybase, and Microsoft SQL Server, and MySQL.

EZSurvey generates a flat table inside an ODBC database to store data for a project. The table has a primary key field, called "ID". Where possible, EZSurvey will automatically generate a key, using stored procedures, sequences, or auto-increment fields. Otherwise, it generates a long pseudo-random number for each record to use as the primary key value. EZSurvey does not use CLOB objects, so the maximum field length that you can use is usually 255 characters. (If you need longer fields than 255, you can change the field type in the ODBC Database). After EZSurvey creates a table to match a form, if your database supports long data, you may change the table definition to increase the length of comment responses.

Web data can be stored directly into the ODBC database on the server. Please see the ODBC in UNIX or ODBC in Windows for more information.

Specifics for certain databases are listed below.

Oracle:

Resources created: TABLE tablename, SEQUENCE seq_tablename
Table command: CREATE TABLE tablename (ID VARCHAR(10) CONSTRAINT pk_id PRIMARY KEY, ...)
Sequence command: CREATE SEQUENCE seq tablename minvalue 1 increment by 1 nomaxvalue
Insert command: INSERT INTO tablename (ID,...) VALUES(seq_tablename.nextval,....)
Data type: VARCHAR
Max field length: 255

Sybase SQL Anywhere:

Resources created: TABLE tablename
Table command: CREATE TABLE tablename (ID INTEGER AUTOINCREMENT PRIMARY KEY, ...)
Insert command: INSERT INTO tablename (ID,...) VALUES('', ...)
Data type: VARCHAR
Max field length: 255

Microsoft SQL Server:

Resources created: TABLE tablename
Table command: CREATE TABLE tablename (ID INT IDENTITY(1,1) PRIMARY KEY, ....)
Insert command: INSERT INTO tablename (fields...) VALUES(values....)
Data type: VARCHAR
Max field length: 255

Microsoft Access:

Resources created: TABLE tablename
Table command: CREATE TABLE tablename (ID VARCHAR(24) PRIMARY KEY, ...)
Insert command: INSERT INTO tablename (ID, ...) VALUES(pseudorandom value,...)
Data type: VARCHAR
Max field length: 255