Комментарий к оригинальной версии вопроса
Чтобы ответить на этот вопрос, потребуется больше информации - и больше информационных запросов, чем помещается в комментарии.
Во-первых, из обсуждения я предполагаю, что вы используете IBM Informix Dynamic Server (IDS) в каком-то варианте Windows (но какой?). Какую версию IDS вы используете, пожалуйста? Кроме того, какую версию ClientSDK вы используете?
Далее, я предполагаю, что вы можете подключиться к базе данных IDS с помощью некоторой программы - проблема связана с доступом через NHibernate, а не с доступом вообще. Если ваша проблема заключается в том, что вы еще не смогли получить доступ к IDS, то этапы отладки несколько отличаются от «не с помощью альтернативного метода доступа».
Когда вы подключаетесь через другой метод, (a) что это за другой метод и (b) какую строку подключения вы используете? Я хотел бы видеть «структурные детали» строковых значений. Например, если вы укажете базу данных как «чувствительный @ секретный», я хотел бы видеть нотацию «xxxxxxxxx @ yyyyyy», потому что, хотя нам не обязательно знать, что имена являются конфиденциальными и секретными, нам нужно примерно знать, как выглядят имена. Аналогично для любого другого значения в строках. Вы сказали, что удалили конфиденциальную информацию, но сделали это настолько тщательно, что я не могу сказать, было ли то, что вы предоставили, разумным.
Использовали ли вы SETNET32 для установки любых значений среды Informix - вопрос, который относится только к платформам Windows (Unix использует обычные переменные среды, а не центральный реестр)? Если так, что вы установили?
Как рабочие строки подключения для пакета не-NHibernate сравниваются с нерабочими строками для NHibernate?
Наконец (пока) вы показали, что пытались использовать драйвер IBM DB2 .NET и драйвер Informix OLEDB. Вы должны знать, что драйвер DB2 .NET использует протокол DRDA для связи с IDS, тогда как драйвер Informix использует протокол SQLI. По умолчанию IDS прослушивает только соединения SQLI - вам придется настроить IDS для приема соединений DRDA. Это исправление затрагивает некоторые детали администрирования IDS, и я надеюсь, что нам не нужно заниматься этим, но мы можем.
Как получить информацию на SO? Я предлагаю вам отредактировать свой вопрос, добавив к нему дополнительную информацию, чтобы другие люди могли легко увидеть проблемы. (Я не специалист по IDS в Windows; мой задний двор основан на Unix. Мне, вероятно, придется привлекать других людей для предоставления ответа, но необходимой информации пока нет.)
Комментарий к вопросу с поправками
IDS поддерживает BOOLEAN типы неортодоксальным способом - он не распознает true
или false
(или unknown
) как логические значения; вместо этого он использует 't'
и 'f'
. Следовательно, код, сгенерированный NHibernate, недопустим для IDS (хотя я бы принял аргументы о том, что так и должно быть). Мне не ясно, есть ли хороший способ решить проблему. Если вы сможете убедить NHibernate пропустить символы, указанные в кавычках, вместо true и false, тогда у вас есть шанс на победу.