Как выбирать данные с помощью UniDac из DBF?

Вопрос немного общий так как в этом компоненте огромное количество настроек.
Пишу программу используя UniDac и DBF первый раз и сомневаюсь в правильности своего кода.

Код рабочий. Но есть некоторые вопросы и проблемы.
base_path:='C\base\'; //Путь к базе
//sql_request:='SELECT * FROM BASE1 WHERE N="13116"'; //Запрос - находит данные
sql_request:='SELECT * FROM BASE1 WHERE F_NAME="Иван"'; //Запрос - не находит данные, а Иван в F_NAME есть.

UniConnection1.ProviderName := 'DBF';
UniConnection1.Database := base_path;
UniConnection1.SpecificOptions.Values['DBFFormat'] := 'dfFoxPro2';
UniConnection1.SpecificOptions.Values['Direct'] := 'True';
UniConnection1.Connect;

UniQuery1.Connection := UniConnection1;
UniQuery1.SQL.Text :=sql_request;
UniQuery1.Open;


sql_result:=UniQuery1.FieldByName('NAME').AsString; //Получили данные выполнив запрос
records_count:=UniQuery1.RecordCount; //Заодно и узнаем сколько там строк
memo1.Lines.Add(inttostr(records_count)); //Вывели
memo1.Lines.Add(sql_result); //Вывели

UniQuery1.Close;
UniConnection1.Close;

1) SQL запрос с русскими буквами не работает. С английскими работает. Видимо нужно что то настроить или конвертировать. Что нужно сделать?
2) Правильно ли я думаю, что для отображения всех записей мне нужно узнать их число (UniQuery1.RecordCount) и перебрать их "смещаясь" (UniQuery1.Next;)? Обычно так и делают, но может тут другой способ.
3) В моем коде есть явные баги? Что то не закрыл, что то не так открыл, настроил? Писал по официальному мануалу.
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы