Подключите PHP к IBM i (AS/400)

tl; dr

Панда, эквивалентная

select * from table where column_name = some_value

, является

table[table.column_name == some_value]

Множественные условия:

table[(table.column_name == some_value) | (table.column_name2 == some_value2)]

или

table.query('column_name == some_value | column_name2 == some_value2')

Пример кода

import pandas as pd

# Create data set
d = {'foo':[100, 111, 222], 
     'bar':[333, 444, 555]}
df = pd.DataFrame(d)

# Full dataframe:
df

# Shows:
#    bar   foo 
# 0  333   100
# 1  444   111
# 2  555   222

# Output only the row(s) in df where foo is 222:
df[df.foo == 222]

# Shows:
#    bar  foo
# 2  555  222

В приведенном выше коде это строка df[df.foo == 222], которая дает строки на основе значения столбца, 222 в этом case.

Возможны также множественные условия:

df[(df.foo == 222) | (df.bar == 444)]
#    bar  foo
# 1  444  111
# 2  555  222

Но в этот момент я бы рекомендовал использовать функцию query , так как он менее подробный и дает тот же результат:

df.query('foo == 222 | bar == 444')
32
задан Rahul 4 June 2019 в 09:26
поделиться

8 ответов

Вы посмотрели на соединение с сервером с помощью unixODBC? Если я помню правильно, что это имеет поддержку IBM DB2 и компиляций на OpenBSD. Выезд http://www.php.net/odbc для получения дополнительной информации относительно стороны PHP.

, Если Вы не можете заставить это работать, опция установить веб-сервис на сервере Linux может быть всем, что можно сделать.

18
ответ дан 27 November 2019 в 21:11
поделиться

Вместо того, чтобы устанавливать 2-е поле, почему Вы не изучаете Коннектор PHP для iSeries? Мои мейнфреймовые парни сказали, что было очень легко установить на нашем iSeries здесь.

Мы записали простой сервер в PHP, который загружает модели данных из данных DB2, сериализирует их и возвращает их вызывающей стороне. Этот подход означает, что только другое приложение PHP может использовать сервис, но это именно так намного более быстро на обоих концах, чтобы просто сериализировать объект и отправить ему вниз канал.

Вот PDF от IBM на предмете: http://i-seriesusergroup.org/wp-content/uploads/2006/09/PHP%20for%20i5OS%20NESDND.pdf

4
ответ дан 27 November 2019 в 21:11
поделиться

Второму @John Downey я заставил возможность соединения работать с PHP на AS/400 с unixODBC.

Проверка Ваш phpinfo (), чтобы видеть, доступен ли unixODBC в нем. Я не должен был компилировать его в на SLES 10.

2
ответ дан 27 November 2019 в 21:11
поделиться

Похож на веб-сервис, будет ответом для меня. На производственном поле я не должен проходить компиляцию и поддержание моей собственной специальной установки PHP, так как поддержка ODBC должна быть скомпилирована в, согласно документации PHP.

2
ответ дан 27 November 2019 в 21:11
поделиться

Можно соединить непосредственно использование стандартного драйвера ODBC также. Версия IBM обычно дает Вам больше функций как способность назвать программы и подобные вещи. Если Вам только нужны SQL и хранимые процедуры, ODBC должен работать.

1
ответ дан 27 November 2019 в 21:11
поделиться

Почему бы не использовать PDO от PHP? Я должен предположить здесь, так как я не мог найти общедоступный список всех портов доступным для OpenBSD, но так как существует порт для FreeBSD, NetBSD и т.д., возможно, Вы становитесь удачливыми также.

(я предполагаю это даже при том, что ссылки OpenBSD на руководство носильщика FreeBSD, Freshports не применим для Вашей системы?)

, Если PDO не доступен и так как я надеюсь, что Вы используете порты и согласно следующей ссылке, существует доступных php5-ODBC:

Настолько принимающий Вы управляете своей системой через порты, существуют Ваши указатели.

Hope, которая помогает!

1
ответ дан 27 November 2019 в 21:11
поделиться

Действительно, веб-сервис походит на отличный способ решить проблему. Один способ постараться не иметь абсолютно отдельную ОС для него состоял бы в том, чтобы записать веб-сервис в Java сверху инструментов AS400 для Java (которые довольно хороши, btw). Это должно, по крайней мере, позволить Вам выполнить свой уровень служб на поле OpenBSD также.

1
ответ дан 27 November 2019 в 21:11
поделиться

Веб-сервис является почти наверняка способом пойти. Я уверен, что Вы уже думали об этом, но так как Вы делаете PHP с обеих сторон, Вы можете, вещи ярлыка немного при помощи сериализируют () для создания данных ответа вместо того, чтобы создать надлежащий XML-документ. Это менее гибко за длительный период, но это, вероятно, разбудит Вас и работающий более быстро.

1
ответ дан 27 November 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: