fpc + oracle

Модератор: Модераторы

Ответить
ushakov
новенький
Сообщения: 51
Зарегистрирован: 18.05.2005 11:15:48
Откуда: Украина, Киев

Сообщение ushakov »

Не встречал ли кто библиотеки классов для работы с СУБД Oracle?

Использую компилятор в режиме совместимости с Delphi - не смог собрать пример работы с Oracle из примеров.
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

А на что ругается?
ushakov
новенький
Сообщения: 51
Зарегистрирован: 18.05.2005 11:15:48
Откуда: Украина, Киев

Сообщение ushakov »

Для удобства в отдельную директорию копирую файлы:
oraoci.pp
oraclew.pp
test01.pp

Далее пытаюсь собрать это все дело

#fpc test01.pp
Free Pascal Compiler version 1.9.8 [2005/02/20] for i386
Copyright © 1993-2005 by Florian Klaempfl
Target OS: Linux for i386
Compiling test01.pp
Compiling oraclew.pp
Compiling oraoci.pp
oraclew.pp(154,73) Error: Incompatible type for arg no. 4: Got "ShortInt", expected "PCardinal"
oraclew.pp(308,60) Error: Incompatible type for arg no. 4: Got "ShortInt", expected "PCardinal"
oraclew.pp(447) Fatal: There were 2 errors compiling module, stopping
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specifiy a source file to be compiled)
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

Жестоко... Ковырять надо.
ushakov
новенький
Сообщения: 51
Зарегистрирован: 18.05.2005 11:15:48
Откуда: Украина, Киев

Сообщение ushakov »

Не знаю когда последний раз была предпринята попытка собрать пример (и пользуется ли кто-то модулем OraOCI вообще) :) для Oracle9i необходимо править модули:

В модуле oraoci.pp удалить следующие строки:

{$linklib common}
{$linklib core4}
{$linklib nlsrtl3}

В модуле oraclew.pp заменить во всех вызовах функции OCIAttrGet четвертый параметр с числовой константы на адрес переменной типа PCardinal.

После этих изменений можно задать в test01.pp login, password & SID, собрать его и запустить - должно работать.

Вообще не знаю что это за библиотеки common, core4, nlsrtl3 Может быть они уже в Oracle 8i не нужны были. Просмотрев несколько примеров на C/C++ и написав на C++ несколько своих программ не сталкивался с необходимостью использования каких-либо других библиотек, кроме clntsh
Ответить