Не встречал ли кто библиотеки классов для работы с СУБД Oracle?
Использую компилятор в режиме совместимости с Delphi - не смог собрать пример работы с Oracle из примеров.
fpc + oracle
Модератор: Модераторы
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
Для удобства в отдельную директорию копирую файлы:
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)
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
- Откуда: Екатеринбург
- Контактная информация:
Не знаю когда последний раз была предпринята попытка собрать пример (и пользуется ли кто-то модулем 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
В модуле 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
