Пока работа над SynEdit заглохла (никак не могу до конца понять логику сворачивания кода в SynEdit...), то в качестве разминки для ума решил сделать аддин sqlite.
Пока умеет немного - открыть базу, выполнить произвольный запрос, вернуть результат.
Методы:
OpenDatabase(dbFile) - открыть базу по пути. При этом создается внутренний объект для работы с базой, собственно открытия файла не происходит.
Возвращает строку с идентификатором базы, его нужно использовать дальше для работы с базой.
CloseDatabase(db) - освободить внутренний объект для указанной базы.
Возвращает булево - true или false. False может быть, если переданный идентификатор не существует.
ExecSQL(db, sql) - выполнить произвольный запрос в указанной базе.
Возвращает:
- для запросов вида SELECT - таблицу значений (ValueTable)
- для остальных запросов - количество "задетых" строк (Affected rows)
- при возникновении ошибки - False
Также при возникновении ошибки ругается в окно сообщений с описанием что именно не так.
Пример использования:
Код:
var obj = addins.byUniqueName("sqlite").object;
db = obj.OpenDatabase("d:\\Misha\\Projects\\Lazarus\\Snegopat\\sqlite\\test.sqlite")
res = obj.ExecSQL(db, "CREATE TABLE test(id INTEGER PRIMARY KEY ASC, txt)")
message(res)
res = obj.ExecSQL(db, "INSERT INTO test(txt) values ('Row 1'),('Row 2')")
message(res)
res = obj.ExecSQL(db, "SELECT * FROM test")
obj.ExecSQL(db, "DROP TABLE test")
obj.CloseDatabase(db)
res.ВыбратьСтроку()
Вобщем, если надо - берите, пользуйтесь
Предложения к улучшению принимаются.
Файлы см. в репозитории.
P.S. вау, юбилейное сообщение - №100