Recent

Author Topic: Проблема с Sqlite и SQLQuery по текстовому столбцу  (Read 397 times)

ligor

  • Newbie
  • Posts: 1
Добрый день.
Столкнулся с проблемой с базой Sqlite. Вот тестовый пример. Создаем тестовую базу с двумя одинаковыми таблицами со строковым столбцом key

Quote
CREATE TABLE [test] (
   [key] string NOT NULL
)
CREATE TABLE [test2] (
   [key] string NOT NULL
)

В первую таблицу вставляем данные, где первым будет число

Quote
INSERT INTO [test] ([key]) VALUES
  ('1'),
  ('5test'),
  ('3'),
  ('test');
 
А во вторую первой записью будет строка

Quote
  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 без экзешника

 

TinyPortal © 2005-2018