Вопрос немного общий так как в этом компоненте огромное количество настроек.
Пишу программу используя 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) В моем коде есть явные баги? Что то не закрыл, что то не так открыл, настроил? Писал по официальному мануалу.