При разработке собственных приложений для Компаса удобно пользоваться текстовыми базами данных *.loa. Для многих задач их хватает, удобно править руками. К тому же они хорошо представлены в примерах SDK.
Но у меня возникает вопрос, можно ли при запросе к такой БД использовать операторы SQL: Insert, Update, Delete?
Если прочитать SDK.chm, то получается что условия выборки для БД *.loa должны задаваться с помощью метода ksCondition. В примечании №2 для метода Condition говорится что он действителен только для запроса Select. Из этого выходит что мы не можем задать условия выборки для операций Insert, Update, Delete и следовательно они не работают.
В то же время для метода ksCondition такого примечания №2 нету.
Может это и глупый вопрос, я еще не очень в программировании и толком не отличаю COM, Automation и прямые вызовы API и как это все внутри работает.
Но еще интересный момент:
в файле LibDB.pas в коментарии к методу DoStatement есть такие строчки :
"
//Для ODBC баз отношение не объязательно в случае Insert, Delete, Update. Для текстового файла отношение
// в этом случае необходимо, чтобы определить имена колонок "
Не понятно что имеется в виду под текстовым файлом, файл *.loa или *.txt при подключении через ODBC к Microsoft Text Driver?
Если второе то прийдется мне осознать что работа с файлами *.loa есть неполноценной и искать другие пути хранения данных. Хотя бы через тот же ODBC MS Text Driver или придумывать как править файлы *.loa как обычные текстовые файлы средствами delphi.
Странно что вроде как формат *.loa вроде как продвинутый в Компасе, а работать полноцено с ним невозможно. :(((
Програмирую в среде Delphi Explorer 2006.