Lazarus/SqlLite3 Не находит столбец

Рейтинг: 0Ответов: 1Опубликовано: 07.03.2023

Делаю небольшую игру. Есть БД с таблицей: введите сюда описание изображения

Есть метод создающий Броню на заказ:

function TDataBaseManager.GetHeroArmor(nameOfArmor: String; armorType: XAbsArmorType; equipType: XAbsEquipmentType): TEquipment;
var i: XAbsParameter;
    armor: TArmor;
begin
  armor := TArmor.Create;
  SQLQuery1.Close;
  SQLQuery1.SQL.Text:='SELECT * FROM '+eEquipmentType[equipType]+'Params WHERE name = '+nameOfArmor;
  SQLQuery1.Open;
  for i:=low(XAbsParameter) to high(XAbsParameter) do begin
    if (i<>Defence) and (i<>WeaponDamage) then begin
      armor._params[i] := SQLQuery1.FieldByName(pParameter[i]).AsFloat;
      end
    else armor._params[i] := 0;
  end;

Проблема возникает тут: введите сюда описание изображения

Как видно название колонки передаётся методу верно Helm_11, но после команды "SQLQuery1.Open;" выдаёт ошибку: введите сюда описание изображения

Как это вообще это возможно. Для меня это на столько нелогично... . Но всего скорее я просто что то не понимаю. Помогите. Буду очень признателен!

Ответы

▲ 1

Всем спасибо за помощь. Решил проблему с помощью оператора LIKE.

SQLQuery1.SQL.Text:='SELECT * FROM '+eEquipmentType[equipType]+'Params WHERE name LIKE "'+nameOfArmor+'"';

Тема закрыта.