11.1. I can't get SQL to work: Undefined subroutine &Vend::Table::DBI::create ...
This probably means one of the following:
No SQL database.
Interchange doesn't include a SQL database. You must select one and install it.
You must install Perl's DBI module before using Interchange with SQL. You can see where to get it at http://www.cpan.org, or try:
perl -MCPAN -e 'install DBI'
You must install the specific Perl DBD module for your database before using Interchange with SQL. You can see where to get it at http://www.cpan.org, or try:
perl -MCPAN -e 'install DBD::XXXXX'
where XXXXX is the name of your module. Some of them are:
Adabas DB2 Informix Ingres ODBC Oracle Pg Solid Sybase Unify XBase mSQL mysql
If you can't make this script run without error:
use DBI; use DBD::XXXXX;
Then you don't have one of the above, and Interchange can't use an SQL database until you get one installed.
I don't like the column types that Interchange defines!
They can be changed. See the foundation/dbconf/mysql directory for some examples under MySQL.
I change the ASCII file, but the table is not updated. Why?
Interchange writes an empty file TABLE.sql (where TABLE is the name of the table). When this is present, Interchange will never update the table from disk.
Also, if you have changed the field names in the file, you must restart the catalog (Apply Changes) before they will be picked up.
Why do I even need an ASCII file?
Interchange wants some source for column names initially. If you don't want to have one, just create a TABLENAME.sql file in the products directory. For example, if you have this:
Database products products.txt dbi:mysql:test_minivend
Then create a file products/products.sql.
Database pricing pricing.txt dbi:mysql:test_minivend
Create a file products/pricing.sql. .
Interchange overwrites my predefined table!
Yes, it will if you don't create a file called TABLENAME.sql, where TABLENAME is the name of the Interchange table. If you want this to happen by default, then set NoImport TABLENAME.