Database Attributes

### Index Up << >>

## Database Attributes

Especially in SQL databases, there are certain things that can be set with additional database attributes. For text import, the CONTINUE extended database import attribute allows additional control over the format of imported text.

NOTE: CONTINUE applies to all types except CSV. (You won't want to use NOTES unless using type LINE.)

CONTINUE
  One of UNIX, DITTO, LINE, NONE, or NOTES. The default, NONE, is to simply split the line/record according to the delimiter, with no possible spanning of records. Setting CONTINUE to UNIX appends the next line to the current when it encounters a backslash ( `\`) at the end of a record, just like many Unix commands and shells.

  DITTO is invoked when the key field is blank -- it adds the contents of following fields to the one above, separated by a newline character. This allows additional text to be added to a field beyond the 255 characters available with most spreadsheets and flat-file databases.

  Example in catalog.cfg:

        Database products products.txt  TAB
        Database products CONTINUE      DITTO

  Products.asc file:

        code     price     description
        00-0011  500000    The Mona Lisa, one of the worlds great masterpieces.
                           Now at a reduced price!

  The description for product 00-0011 will contain the contents of the description field on both lines, separated by a newline.

  NOTE: Fields are separated by tabs, formatted for reading convenience.

  This will work for multiple fields in the same record. If the field contains any non-empty value, it will be appended.

  LINE is a special setting so that you can use a multi-line field. Normally, when using the LINE type, you may have only data on one line separated by one blank line. When using CONTINUE LINE, you may have some number of fields which are each on a line, while the last one spans multiple lines up until the first blank line.

  Example in catalog.cfg:

        Database products products.txt  LINE
        Database products CONTINUE      LINE

  Products.asc file:

          code
          price
          description

          00-0011
          500000
          The Mona Lisa, one of the worlds great masterpieces.
          Now at a reduced price!

          00-0011a
          1000
          A special frame for the Mona Lisa.

  NOTES reads a Lotus Notes ``structured text'' file. The format is that there are any number of fields, all except one of which must have a field name followed by a colon and then the data. There is optional whitespace after the colon.

  Records are separated by a settable delimiting charater which goes on a line by itself, much like a ``here document''. By default it is a form feed (^L) character.

  The final field begins at the first blank line and continues to the end of the record. This final field is named `notes_field` unless you set it as mentioned below.

  MiniVend reads the field names from the first paragraph of the file. The key field should be first, followed by other fields in any order. If one (and only one) field name has whitespace, then its name is used for the `notes_field` and any characters after a space or TAB are used as the record delimiter. If there are none, then the delimiter returns to the default form feed (^L) and the field name reverts to `notes_field`. The field in question will be discarded, but a second field with whitespace will cause an import error.

  Following records are then read by name, and only fields with data in them need be set. Only the `notes_field` may contain a newline. It is always the last field in the record, and begins at the first blank line.

  The following example sets the delimiter to a tilde `(~)` and renames the `notes_field` to description.

  Example in catalog.cfg:

        Database products products.txt  LINE
        Database products CONTINUE      NOTES

  Products.asc file:

          code
          title
          price
          image
          description ~
          size
          color

          title: Mona Lisa
          price: 500000
          code: 00-0011
          image: 00-0011.jpg

          The Mona Lisa, one of the worlds great masterpieces.
          Now at a reduced price!
          ~
          title: The Art Store T-Shirt
          code: 99-102
          size: Medium, Large*, XL=Extra Large
          color: Green, Blue, Red, White*, Black
          price: 2000

          Extra large 1.00 extra.
          ~

EXCEL
  Microsoft Excel is a widely-used tool to maintain MiniVend databases, but has several problems with its standard TAB-delimited export, like encasing fields containing commas in quotes, generating extra carriage returns embedded in records, and not including trailing blank fields. To avoid problems, use a text-qualifier of none.

  Set the EXCEL attribute to 1 to fix these problems on import:

          Database products EXCEL 1

  This is normally used only with TAB-delimited files.

### Index Up << >>