Как говорит Михал Никлас, стандартным инструментом, поставляемым с IBM Informix Dynamic Server (разговорный IDS или даже просто Informix), является DB-Access. Однако он распространяется только с самой IDS, а не с продуктами Informix Client SDK (CSDK) или Informix Connect (I-Connect).
Если вы хотите получить доступ к IDS с компьютера, на котором не установлен IDS, вам понадобится либо CSDK, либо I-Connect на компьютере, а также некоторое другое программное обеспечение - возможно, оригинальная (до Microsoft и более десяти лет). SQLCMD . Это то, что я использую - и использовал в различных версиях за последние (кашель, брызги, ух) двадцать два года или около того; Я написал это, потому что мне не понравилось поведение командной строки программы с именем isql
(часть продукта Informix SQL), которая была предварительным курсором для DB-Access. (Много истории - не так уж важно для тебя.)
Использование - SQLCMD имеет больше параметров, чем вы знаете, что делать. Основы просты, хотя:
sqlcmd -d dbname@dbserver -e 'select * from table' -x -f file.sql
Это подключается к базе данных с именем 'dbname' на сервере базы данных, известном как 'dbserver', как указано в файле sqlhosts (обычно $ INFORMIXDIR / etc / sqlhosts). «-E» указывает на выражение SQL - оператор выбора; результаты будут распечатаны на стандартный вывод в строгом формате (формат Informix UNLOAD), по одной логической строке на запись. «-X» включает режим трассировки; опция '-f' означает чтение указанного файла для дальнейших команд. Расширение «.sql» не является обязательным (будьте осторожны: DB-Access требует расширения «.sql» и добавит его для вас). (Аргументы, не начинающиеся с префикса «-e» или «-f», интерпретируются эвристически; если он содержит пробелы, это SQL; если нет, то это имя файла.) Опция «-H» печатает заголовки столбцов (метки ) перед набором результатов; опция '-T' печатает типы столбцов (после заголовков, до результатов). Опция '-B' работает в режиме тестирования; он включает трассировку, печатает выписку, время начала выписки и время, сколько это заняло. (Знание того, когда начинается оператор, полезно, если для запуска SQL требуется много минут - как это может быть в сценариях бенчмаркинга). Существуют элементы управления форматом вывода (включая CSV и даже вариант XML, но не XML с использованием пространств имен), форматом даты и т. Д. Существуют «встроенные» команды для перенаправления ввода и вывода и ошибок; большинство параметров командной строки также могут использоваться в интерпретаторе и т. д. SQLCMD также предоставляет механизм истории; он сохраняет операторы SQL, и вы можете просматривать, редактировать или повторно запускать их. В сочетании с перенаправлением вывода вы можете сохранить список выполненных операторов и т. Д.
Единственный недостаток SQLCMD - это то, что он в настоящее время не портирован на Windows. Он работал на Windows когда-то около 6 или 7 лет назад. С тех пор компиляторы Microsoft стали беспокоиться о функциях API, не относящихся к MS, настаивая на том, что даже если я запрашиваю их по имени (запрашивая функциональность POSIX), функции должны начинаться с префикса подчеркиванием, а с помощью набора функций, которые использовать безопасно, если вы обращаете внимание на то, что вы делаете (но, к сожалению, могут быть оскорблены теми, кто не обращает на это внимания, и, кажется, вокруг больше невнимательных, чем внимательных программистов) - я имею в виду функции типа 'strcpy () 'который может использоваться совершенно безопасно, если вы знаете размер строк источника и назначения перед тем, как вызывать его. Это в моем списке дел - просто еще не было сделано, потому что это не мой зуд.
Существует также другой инструмент с открытым исходным кодом, называемый SQSL , который вы можете рассмотреть. Он имеет некоторые преимущества по сравнению с SQLCMD (условная логика и т. Д.), Но я думаю, что SQLCMD имеет некоторые преимущества по сравнению с SQSL.
Вы также можете подумать, подойдет ли вам Perl + DBI + DBD :: Informix + dbish.