Каковы несовместимости программ ESQL/C при переходе с HP-UX на Red Hat Linux?

Я переношу проект, и нам нужно перенести исходные файлы ESQL/C из HP-UX в Red Hat Linux.

Какие могут быть несовместимости при перемещении этих файлов ESQL/C в Linux?


person user1716079    schedule 02.01.2013    source источник
comment
Какая платформа СУБД? Пожалуйста, добавьте тег, потому что реализации (e)sql обычно отличаются.   -  person wildplasser    schedule 02.01.2013
comment
Ну вот. Я изменил тег.   -  person wildplasser    schedule 02.01.2013


Ответы (1)


Ответ состоит из двух частей:

  1. Материал встроенного SQL.
  2. Остальной код.

Встроенный SQL

По большей части, если вы не приложили все усилия для написания кода SQL для конкретной системы, я ожидаю, что перенесу исходный код ESQL/C напрямую из HP-UX в Red Hat Linux, не более чем перекомпилируя. Хотя вы, вероятно, можете написать код, который не будет переносимым между системами, я не совсем уверен, как вы этого добьетесь, если будете учитывать 32-битный и 64-битный код (если это действительно необходимо) . У меня есть несколько основных программ, которые переносятся между Linux и HP-UX (или AIX, или Solaris, или Mac OS X) без каких-либо изменений во встроенном коде SQL.

Остальная часть кода

Проблемы переноса здесь не зависят от кода ESQL/C. Существуют различия между обработкой совместно используемой библиотеки, например, или вызовами функций, специфичных для HP-UX, которые недоступны в Linux (или, что еще хуже, одна и та же функция доступна в обоих, но ведет себя по-разному). Эти проблемы следует отнести к правильной причине — коду C вокруг ESQL/C, а не ESQL/C как таковому.

person Jonathan Leffler    schedule 03.01.2013
comment
На данный момент меня беспокоит только встроенный SQL. Будет ли он работать нормально, не вызывая никаких проблем? Будет ли это только простая перекомпиляция? - person user1716079; 03.01.2013
comment
Я ожидал этого; Я был бы удивлен, если бы это не была простая перекомпиляция. Если вы были осторожны, проблем не будет. Использовали ли вы 32-разрядную или 64-разрядную версию ESQL/C на HP-UX (буква U в версии указывает на 32-разрядную версию, буква F указывает на 64-разрядную версию; IIRC, буква H относится к HP-UX и указывает на 32? -bit ESQL/C, который может общаться с 64-битным сервером через разделяемую память)? Вы переходите на 32-битную или 64-битную версию Linux (U или F)? Если они одной и той же «битности», у вас, вероятно, не возникнет затруднений; если они разные, у вас могут возникнуть некоторые проблемы, если вы не были достаточно осторожны, но это все же довольно маловероятно. - person Jonathan Leffler; 03.01.2013
comment
Мне нужно перейти с 32-битной на 64-битную и с 32-битной на 32-битную машину. ? - person user1716079; 03.01.2013
comment
Я могу и написал код ESQL/C, который прозрачно перемещается между 32-битными и 64-битными системами. Это не особенно сложно; это требует небольшой осторожности - в первую очередь не использовать long там, где вам нужно int на 32-битной стороне. Я спрашиваю косвенно, с какой версии CSDK (ESQL/C) вы переходите в системе HP-UX и на какую версию CSDK (ESQL/C) вы переходите на Сторона линукса. Если ваш код C не делает что-то странное, например, использует код загрузки общей библиотеки HP-UX, я ожидаю, что он будет перекомпилирован и запущен. Я не могу этого обещать; Я не знаю, в каком беспорядке код. - person Jonathan Leffler; 03.01.2013
comment
версия (CSDK/ESQL/C) будет равна или выше на стороне Linux, чем на стороне Unix. - person user1716079; 03.01.2013
comment
Это не очень полезный ответ, но если это все, что вы хотите мне сказать, то я сказал вам все, что хотел вам сказать. Если вы не знаете, так и скажите; Я могу уважать это (но вы, вероятно, сможете исправить недостаток знаний на следующий рабочий день). - person Jonathan Leffler; 03.01.2013
comment
Помимо размера слова (32/64), есть ли какой-либо другой случай, о котором вы можете подумать, который был бы достаточно специфичным для системы, чтобы гарантировать ручное вмешательство во время миграции? Например, файловый ввод-вывод, администрирование пользователей и т. д.? И извините за отсутствие версий; на данном этапе я не уверен, что такое версия (т.е. источник/цель). - person user1716079; 03.01.2013