Возвращаюсь у своему вопросу: необходимо подключиться к серверу Velocis программой на Кларионе.

Сразу скажу, что с данным сервером не работал, поэтому мои рекомендации можешь рассматривать просто как мысли вслух программиста с большим стажем работы с БД.

Правильно ли я выбрал формат Dbf. Может, кто предложит что лучше?  Опять-же — для чего «сливаются» данные? Если для дальнейшей работы с ними

прямо в этих базах, то — сойдет. Если же предполагается простая закачка данных из этих баз уже в рабочую базу, то в качестве альтернативы я бы предложил рассмотреть простой ASCII-файл. Чтение из него не медленнее чем из DBF, а то и быстрее. Зато точно не будет никаких сюрпризов, как это бывает при работе с DBF из Клариона.

Самое главное. Надо писать ТЗ на разработку модуля. Так вот, какие основные моменты надо отразить в ТЗ, чтобы эта самая DLL, когда она будет разработана, подключилась бы к программе на Кларионе и нас бы не ждал сюрприз. Какие есть тонкие места?

Тонкие места — передача параметров и использование в этой либе других посторонних либ.

Передача параметров — лучше всего, конечно, по WinAPI-стандарту, т.е. Pascal-подобная. Можно и С-подобную, но здесь могут быть проблемы с разными компиляторами. Через параметры можно передавать практически все — на Кларионе довольно легко подобрать аналоги всем стандартным типам и структурам C/Pascal. Возврат значений из функций — только целое (SHORT/LONG). И, естественно, надо жестко указать, что в качестве параметров нельзя использовать не базовые типы, например, списки и др. Опять же, четко надо распределить, кто-где-как будет создавать/уничтожать временные буфера памяти, если понадобятся.

Что же касается других внешних либ, которые могут использоваться в этой либе, то здесь проблемы, в основном, могут быть только при неверном использовании промежуточных буферов памяти. Так что, грубо говоря, это — забота разработчиков либы.

Ну и основное требование — разрабатываемая либа должна быть самодостаточным «черным» ящиком для тебя. Исключение, как я уже упоминал, касается только временных промежуточных буферов памяти, которые по тем или иным причинам должны создаваться/уничтожаться приложением, которое использует эту либу.