При написании курсовой на Delphi у меня была схожая проблема, точный рецепт уже не помню, но кажется приходилось закреплять query методом Post (или Append, вобщем надо где-то исходники поискать), возможно у DBD::XBase есть эти дополнительные методы?
А насчет кодировки, то в Access она чаще всего win1251, а в базах типа *.dbf и прочих Dos866.
В таких случаях я пользуюсь модулем Cyrillic (qw/dos2win win2dos/), очень удобно.
И встречный вопрос, у меня проблема с выборкой из Ассess, если в селекте выбирается среди прочих поле типа Boolean (которое в базе показывается галочкой при true), то селект ничего не возвращает. Как можно получить это поле? Ума не приложу, по всякому бился.