Добрый день.
Столкнулся с проблемой с базой Sqlite. Вот тестовый пример. Создаем тестовую базу с двумя одинаковыми таблицами со строковым столбцом key
CREATE TABLE [test] (
[key] string NOT NULL
)
CREATE TABLE [test2] (
[key] string NOT NULL
)
В первую таблицу вставляем данные, где первым будет число
INSERT INTO [test] ([key]) VALUES
('1'),
('5test'),
('3'),
('test');
А во вторую первой записью будет строка
INSERT INTO [test2] ([key]) VALUES
('t1'),
('5test'),
('3'),
('test');
Пишем простую программу для чтения из двух таблиц и видим, что в первой таблице столбец интерпретируется как числовой, а во второй как строка, что и ожидалось.
Почему такое поведение? Проход по while not SQLQuery1.EOF do дает такой же результат. Но вот запрос по отдельной записи с ограничением WHERE выдаст полную строку 5test а не 5.
Это глюк или я чего-то не понимаю?
В архиве
https://yadi.sk/d/8UlBusGyZ0LSNg проект с х64 sqlite3.dll без экзешника