RubyODBC не Может выделить SQLHENV

В зависимости от того, что Вы делаете, система () или , popen () может быть прекрасным. Используйте систему (), если сценарий Python не имеет никакого вывода, или если Вы хотите, чтобы вывод сценария Python перешел непосредственно к браузеру. Используйте popen (), если Вы захотите записать данные во вход стандарта сценария Python или считать данные со стандартного вывода сценария Python в php. popen (), то только позволит Вам читать или запишет, но не оба. Если Вы хотите обоих, проверяете proc_open () , но с двусторонней связью между программами необходимо стараться избежать мертвых блокировок, где каждая программа ожидает другого, чтобы сделать что-то.

, Если Вы хотите передать пользователя, снабдил данными к сценарию Python, тогда большой вещью быть осторожным относительно является инжекция команды. Если Вы не осторожны, Ваш пользователь мог бы отправить Вам данные как"; evilcommand"; и заставьте свою программу выполнить произвольные команды против Вашей воли.

escapeshellarg () и , которому escapeshellcmd () может помочь с этим, но лично мне нравится удалять все, что не является известным хорошим символом, с помощью чего-то как

preg_replace('/[^a-zA-Z0-9]/', '', $str)

5
задан rip747 14 September 2009 в 02:01
поделиться

6 ответов

Плевать, я действительно получил эту работу после отправки моего вопроса. В итоге я удалил libdbd-odbc-ruby и libdbi-ruby, а затем переустановил их, установив сначала libdbi-ruby, а затем установив libdbd-odbc-ruby. Думаю, когда я устанавливал их раньше, должно быть, что-то пошло не так.

0
ответ дан 14 December 2019 в 04:43
поделиться

Я начал получать эту ошибку, когда обновился до Ubuntu 9.10 (Karmic Koala). Ваш совет относительно порядка установки пакетов Ubuntu мне не помог.

Кажется, исправление заключалось в ручной компиляции ruby-odbc.

wget http://www.ch-werner.de/rubyodbc/ruby-odbc-0.9997.tar.gz
tar xzvf ruby-odbc-0.9997.tar.gz
cd ruby-odbc-0.9997
ruby extconf.rb --with-dlopen
make
sudo make install
5
ответ дан 14 December 2019 в 04:43
поделиться

Кстати, следование инструкциям по перекомпиляции Ruby-ODBC на Ubuntu 9.10 (Karmic) потребовало установки пакета libiodbc2-dev или unixodbc-dev. При использовании libiodbc2-dev у меня возникали ошибки сегментации, когда моя программа на Ruby пыталась:

connection.select_all('select top 15 * from log_device_healths')

.. но без проблем при использовании unixodbc-dev вместо этого.

0
ответ дан 14 December 2019 в 04:43
поделиться

Решение Тима Моргана не сработало для меня. Однако мне удалось заставить все работать, установив старую версию libodbc-ruby (0.9995) отсюда:

http://mirrors.kernel.org/ubuntu/pool/universe/libo/libodbc-ruby/libodbc- ruby1.8_0.9995-1_i386.deb

Дополнительные сведения доступны в блоге Карстена Гелинга:

http://gehling.dk/2010/02/the-woes-of-libodbc-ruby1-8-and- debian-ubuntu /

Однако будьте осторожны - диспетчер обновлений Ubuntu с радостью «обновит» эту версию libodbc-ruby до неработающей версии 0.9997-2. Я случайно перезаписал старую версию таким образом только для того, чтобы снова оказаться здесь, пытаясь выяснить, как я исправил это в прошлый раз.

0
ответ дан 14 December 2019 в 04:43
поделиться

Ну, это кажется, мой другой ответ перестал работать для меня. Эта ветка помогла мне решить проблему другим способом, и я хотел поделиться ею здесь.

sudo gem uninstall ruby-odbc
sudo rm /usr/local/lib/site_ruby/1.8/x86_64-linux/odbc.so
cd /tmp
wget http://mirrors.kernel.org/ubuntu/pool/universe/libo/libodbc-ruby/libodbc-ruby1.8_0.9995-1_amd64.deb
sudo dpkg -i libodbc-ruby1.8_0.9995-1_amd64.deb

Если вы используете не 64-битную платформу, вам необходимо загрузить другой пакет Debian.

По сути, проблему решает установка версии 0.9995 пакета Ubuntu ruby-odbc.

0
ответ дан 14 December 2019 в 04:43
поделиться

Система

Ubuntu 9.10 64 бит

Мне пришлось указать каталог odbc в установке rubyodbc

wget http://www.ch-werner.de/rubyodbc/ruby-odbc-0.9997.tar.gz
tar xzvf ruby-odbc-0.9997.tar.gz
cd ruby-odbc-0.9997
ruby extconf.rb --with-odbc-dir=/usr/lib/odbc --disable-dlopen
make
sudo make install
2
ответ дан 14 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

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