Обмен данными между MySQL и FileMaker Pro

Задача
Вы хотите осуществлять обмен информацией между MySQL и FileMaker Pro.

Решение
В Windows вы можете установить из FileMaker Pro ODBC-соединение с сервером MySQL. Можно и экспортировать таблицы из MySQL в файлы, а затем импортировать их в FileMaker Pro, или наоборот. Но не забывайте о возможной несовместимости типов данных.

Обсуждение
Если вы можете установить соединение из FileMaker Pro с сервером MySQL по ODBC, то можете так получить доступ к таблицам MySQL. Процедура аналогична описанной для соединения с MySQL из Access

Также вы можете экспортировать данные из одной программы в файл, а затем импортировать их в другую программу. Каталог transfer дистрибутива recipes содержит утилиту mysql_to_filemaker.pl, экспортирующую таблицу MySQL в файл, который можно импортировать в FileMaker Pro. Это сценарий предназначен для обработки следующих ситуаций, возможных при работе с FileMaker Pro:

• Формат дат по умолчанию для FileMaker Pro – это MM-DD-CCYY. Сценарий перезаписывает содержимое любых столбцов таблицы MySQL, содержащих даты так, чтобы они соответствовали формату даты FileMaker Pro.




• FileMaker Pro поддерживает такие типы столбцов, как дата и время, но не комбинированный тип дата-и-время. Сценарий mysql_to_filemaker.pl экспортирует столбцы DATETIME и TIMESTAMP как отдельные значения DATE и TIME. (Например, столбец таблицы с именем c экспортируется как два
столбца – c_date и c_time.)

• Все внутренние символы перевода строки и возврата каретки внутри значений столбцов отображаются в Ctrl-K, именно так FileMaker Pro представляет разделители строк внутри значений данных.

Для обработки значений данных mysql_to_filemaker.pl использует подход, подобный изложенному в рецепте 10.33 для формирования предложения SELECT, когда таблица экспортируется с перезаписью дат. То есть сценарий читает метаданные таблицы, чтобы выявить столбцы дат, и экспортирует их, используя вызовы DATE_FORMAT() для перезаписи значений столбцов в формат FileMaker Pro.

mysql_to_filemaker.pl записывает вывод в формате, который FileMaker Pro называет форматом слияния (merge), а по сути он является форматом CSV с начальной строкой заголовков столбцов. Файлы слияния удобны для FileMaker Pro по нескольким причинам:

• При создании новой таблицы из файлов в формате слияния FileMaker Pro автоматически использует заголовки для имен столбцов.


Обеспечивается простой способ переноса имен столбцов таблицы MySQL в базу данных FileMaker Pro.

• При импорте файла слияния в существующую таблицу наличие строки заголовков столбцов упрощает сопоставление столбцов файла данных столбцам таблицы.

Сценарий mysql_to_filemaker.pl требует указания в командной строке аргументов имен базы данных и таблицы. Например, чтобы экспортировать содержимое таблицы mail в файл слияния mail.mer, вызываем сценарий так:

% mysql_to_filemaker.pl cookbook mail > mail.mer

Таблица mail содержит столбец t со значениями DATETIME. Если вы внимательно посмотрите на mail.mer, то заметите, что mysql_to_filemaker.pl экспортирует столбец t как два отдельных столбца, t_date и t_time, преобразуя порядок составляющих даты из формата ISO в MM-DD-CCYY:

t_date,t_time,srcuser,srchost,dstuser,dsthost,size
05-11-2001,10:15:08,barb,saturn,tricia,mars,58274
05-12-2001,12:48:13,tricia,mars,gene,venus,194925
05-12-2001,15:02:49,phil,mars,phil,saturn,1048
05-13-2001,13:59:18,barb,saturn,tricia,venus,271
05-14-2001,09:31:37,gene,venus,barb,mars,2291
...

Кроме того, сценарий mysql_to_filemaker.pl понимает обычные опции параметров соединения (такие, как --user и --host).


Все опции должны быть указаны перед аргументом имени базы данных.

После создания файла слияния можно указать FileMaker Pro на необходимость открыть его (тогда будет создана новая таблица) или импортировать в существующую базу данных.

Для переноса данных в обратном направлении (импорта базы данных FileMaker Pro в MySQL) выполните такие операции:

1. Экспортируйте базу данных в какой-нибудь тестовый формат. Если вы хотите, чтобы файл содержал строку заголовков столбцов, экспортируйте базу данных в формат слияния. Затем можно будет обработать файл утилитой cvt_file.pl, чтобы вывести строки, элементы которых разделены символами табуляции, признак конца строки – символ перевода строки.

Это пригодится, если понадобится преобразовать файл с помощью других утилит, которые предполагают такой формат ввода.

2. Если база данных содержит даты, то в зависимости от формата, который FileMaker Pro использует для их экспорта, может потребоваться преобразование дат для MySQL. FileMaker Pro использует формат по умолчанию MM-DD-CCYY, если указать для экспорта опцию «don’t format output» (не форматировать вывод). Если же выбрать «display using current layout» (отображать в текущем формате), даты будут экспортированы в том формате, в котором их отображает FileMaker Pro. Вы можете использовать сценарий cvt_date.pl для перезаписи дат в формат ISO.

3. Если таблица MySQL, в которую вы планируете импортировать данные FileMaker Pro, не существует, создайте ее. Утилита guess_table.pl может пригодиться для формирования предложения CREATE TABLE.

4. Импортируйте файл данных в MySQL при помощи LOAD DATA и mysqlimport.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела MySQL на эту тему:
Диагностическая утилита для LOAD DATA
Извлечение и перестановка столбцов файлов данных
Импорт XML в MySQL
Импорт с помощью LOAD DATA и утилиты mysqlimport
Импорт файлов в формате CSV

Вернуться в раздел: MySQL / 10. Импорт и экспорт данных