2008-08-26 45 views
8

Công việc của tôi sẽ dễ dàng hơn, hoặc ít nhất là tẻ nhạt nếu tôi có thể đưa ra một cách tự động (tốt nhất là trong một kịch bản Python) để trích xuất thông tin hữu ích từ cơ sở dữ liệu FileMaker Pro. Tôi đang làm việc trên máy Linux và cơ sở dữ liệu FileMaker nằm trên cùng một mạng LAN đang chạy trên một máy OS X. Tôi có thể đăng nhập vào giao diện webby từ máy của mình.Cách tốt nhất để trích xuất dữ liệu từ cơ sở dữ liệu FileMaker Pro trong tập lệnh là gì?

Tôi khá tiện dụng với SQL và nếu ai đó có thể chỉ cho tôi một số trình cắm thêm FileMaker có thể cho tôi quyền truy cập SQL vào dữ liệu trong FileMaker, tôi sẽ hài lòng với cú đấm. Tất cả mọi thứ tôi đã tìm thấy chỉ đi theo cách khác: Có FileMaker lấy dữ liệu từ các nguồn SQL. Không hữu ích.

Đây không phải là lựa chọn đầu tiên của tôi, nhưng tôi sẽ sử dụng Perl thay cho Python nếu có giải pháp Perl-y trong tầm tay.

Lưu ý: Dịch vụ XML/XSLT (như được đề xuất bởi một số người) chỉ khả dụng trên Máy chủ FM chứ không phải FM Pro. Nếu không, đó có lẽ sẽ là giải pháp tốt nhất. ODBC đang trở nên vô cùng khó khăn để thậm chí làm việc. Có hoàn toàn bằng không phản hồi từ FM khi bạn thiết lập nó, do đó bạn phải đào qua /var/log/system.log và phân tích các thông báo lỗi tối nghĩa.

Kết luận: Tôi đã làm việc này bằng cách chạy tập lệnh python cục bộ trên máy truy vấn cơ sở dữ liệu FM thông qua kết nối ODBC. Kịch bản thực ra là một TCPServer chấp nhận các kết nối socket từ các hệ thống khác trên mạng LAN, chạy các truy vấn và trả về dữ liệu thông qua kết nối socket. Tôi đã phải làm điều này để bỏ qua thực tế là FM Pro chỉ chấp nhận các kết nối ODBC cục bộ (yêu cầu máy chủ FM cho các kết nối bên ngoài).

Trả lời

5

Đã là thực sự là từ lâu vì tôi đã làm bất cứ điều gì với FileMaker Pro, nhưng tôi biết rằng nó có khả năng kết nối ODBC (và JDBC) được thực hiện với nó (tuy nhiên, tôi không biết làm thế nào, hoặc nếu, mà dịch sang thế giới linux/perl/python mặc dù).

Bài viết này cho thấy làm thế nào để chia sẻ/lộ dữ liệu FileMaker của bạn thông qua ODBC & JDBC:
Sharing FileMaker Pro data via ODBC or JDBC

Từ đó, nếu bạn có thể tạo một ODBC kết nối/JDBC bạn có thể truy vấn dữ liệu ra khi cần thiết.

3

Bạn sẽ cần đĩa CD cài đặt FileMaker Pro để tải xuống trình điều khiển. This document chi tiết quy trình cho FMP 9 - tương tự như phiên bản 7.x và 8.x. Phiên bản 6.x và trước đó là hoàn toàn khác nhau và tôi sẽ không bận tâm cố gắng (hỗ trợ xDBC trong các phiên bản trước đó là "tối thiểu" ở mức tốt nhất).

FMP 9 hỗ trợ cú pháp chuẩn SQL-92 (chủ yếu). Lưu ý rằng thay vì truy vấn trực tiếp các bảng bạn truy vấn bằng cách sử dụng tên "table occurrence", nó dùng như một bí danh bảng của các loại. Nếu các bảng dữ liệu được lưu trữ trong nhiều tệp, bạn có thể tạo một tệp FMP đơn lẻ với các lần xuất hiện/bí danh bảng trỏ đến các bảng dữ liệu đó. Có một "tính năng không có giấy tờ" trong đó một tệp phải có bảng được xác định trong bảng đó và bảng "có liên quan" với bất kỳ bảng nào khác trên biểu đồ quan hệ (không quan trọng cái nào) để truy cập ODBC hoạt động. Nếu không, truy vấn của bạn sẽ luôn không trả về kết quả nào.

Tài liệu PDF nêu chi tiết tất cả các hạn chế của việc sử dụng giao diện xDBC mà FMP cung cấp. Hiệu suất của các truy vấn đơn giản là khá nhanh, ymmv. Tôi đã tìm thấy hiệu suất của các truy vấn chỉ định toán tử "LIKE" ít hơn sao.

FMP cũng có giao diện XML/XSLT mà bạn có thể sử dụng để truy vấn dữ liệu FMP qua kết nối HTTP.Nó cũng cung cấp một lớp PHP để truy cập và sử dụng dữ liệu FMP trong các ứng dụng web.

2

Nếu nghiêng của bạn là Python, bạn có thể quan tâm đến việc kiểm tra Trình bao bọc Python cho Trình tạo phim. Nó cung cấp khả năng truy cập hai chiều tới dữ liệu của Trình tạo phim thông qua các dịch vụ XML tích hợp của Trình tạo phim. Bạn có thể tìm thấy một số thông tin khá kỹ lưỡng về điều này tại:

http://code.google.com/p/pyfilemaker/

Các vấn đề liên quan