Uw opmerkingen

Ну значит выполнить поочередно следующие команды:


drop procedure INSERT_TRANSL;
drop procedure INSERT_SEQUENCE;
drop procedure INSERT_DOCAUTHOR;
drop procedure INSERT_AUTHOR;
DROP EXTERNAL FUNCTION "UPPERCASE";

Важно, чтобы последняя команда выполнилась без ошибок, остальные ошибки можно игнорировать.

Подключиться к БД при помощи isql, и выполнить следующий скрипт:


SET TERM ^ ;
EXECUTE BLOCK AS BEGIN
if (exists(select 1 from RDB$PROCEDURES where rdb$Procedure_name = 'INSERT_TRANSL')) then execute statement 'drop procedure INSERT_TRANSL;';
if (exists(select 1 from RDB$PROCEDURES where rdb$Procedure_name = 'INSERT_SEQUENCE')) then execute statement 'drop procedure INSERT_SEQUENCE;';
if (exists(select 1 from RDB$PROCEDURES where rdb$Procedure_name = 'INSERT_DOCAUTHOR')) then execute statement 'drop procedure INSERT_DOCAUTHOR;';
if (exists(select 1 from RDB$PROCEDURES where rdb$Procedure_name = 'INSERT_AUTHOR')) then execute statement 'drop procedure INSERT_AUTHOR;';
DROP EXTERNAL FUNCTION "UPPERCASE";
END^

Хоть исходник и не мой, но я думаю большого вреда не будет.


Файл fb2lib.pas, для компиляции использовался FreePascal 2.6.2


library fb2lib;
{$mode delphi}
{$H+}
uses
  SysUtils,
  Classes;
function UpperCase(InString:PChar):PChar;cdecl;export;
begin
  Result:=PChar(AnsiUpperCase(string(InString)));
end;
exports UpperCase;
begin
end.

Досталось в наследство от FbLibrarian, в настоящее время, если не нужна поддержка старой программы, лучше не использовать. Проще удалить из схемы БД использование этой функции.

Если не нужна совместимость с FbLibrarian и хочется использовать все возможности программы, то пока только SQLite. Дальше будет видно.

В таком случае вместо DOOMSBOOK должен быть указан полный путь к файлу БД на сервере.


На всякий случай:

http://www.firebirdsql.org/manual/isql-connect-database.html