Обновление библиотеки Firebird UDF до Delphi 2010 - PullRequest
1 голос
/ 30 июля 2010

В Delphi 2006 я использовал библиотеку пользовательских функций, основанную на tbudf.pas, и некоторые функции, которые я добавил самостоятельно.Поскольку я работаю над программой расчета заработной платы, эта функциональность очень полезна для некоторых распространенных концепций расчета заработной платы, которые в противном случае могут потребовать сложного SQL.Я сохранил установку Delphi 2006 и вчера узнал, что сборка моей библиотеки udf в Delphi 2010 потребует некоторой работы.

Хотя я и пришел к некоторому пониманию того, как передача данных работает между моей DLL ина сервере Firebird я в основном просто настраивал свои собственные функции, используя функции, которые существовали в tbudf.К сожалению, ни одна из функций не использует кодировку Unicode.Может быть, это не так уж и сложно, потому что я настроил все свои операции ввода-вывода Delphi 2010 с базой данных для использования AnsiStrings, поэтому, возможно, я могу просто изменить любую из функций Delphi 2010 для использования чего-то вроде PAnsiChar.Но я буду в значительной степени прокладывать новый путь здесь.

Существуют ли открытые библиотеки udf, которые были обновлены до Delphi 2010?Если у вас есть какие-либо советы по поводу того, на что обращать внимание, возможно, я смогу использовать их для обновления своей собственной библиотеки и публикации для кого-то, кому это нужно.

1 Ответ

3 голосов
/ 31 июля 2010

Я переместил весь проект с базой данных Firebird в Unicode.

Что касается udfs, если вы хотите сохранить кодировку своей базы данных как есть, вы можете использовать AnsiString / PAnsiChar вместо string / PChar.

Но если вы хотите использовать UTF8 для кодирования вашей базы данных и использовать Unicode в Delphi, вы должны использовать вместо этого тип UTF8String.

Будьте осторожны, кодировка соединения с базой данных отличается от кодировки самой базы данных. Также следует обратить внимание на длину строк в UTF8.

Чтобы преобразовать базу данных в UTF8, этот инструмент будет вам полезен: http://code.google.com/p/fbclone/

...