Mysql
 sql >> база данни >  >> RDS >> Mysql

Неизвестна колона в списъка с полета

Това е защото вашият

VALUES (%s,%s)

не обгражда съдържанието на променливата namee и семейството с кавички. Следователно вашият back-end Sql двигател смята вашия mohsen е име на колона, а не стойност.

Вместо това използвайте, напр.

VALUES (''%s'',''%s'')

както в

  Namee := 'mohsen';
  Family := 'dolatshah';
  aSQLText:= 'INSERT INTO b_tbl(Name,Family) VALUES (''%s'',''%s'')';
  aSQLCommand := Format(aSQLText,[namee,family]);

В оригиналната версия на моя отговор обясних как да отстраните проблема си, като „удвоите“ единични кавички в Sql, който се опитвахте да изградите, защото ми се струваше, че изпитвате затруднения да видите (буквално) какво не е наред с какво правехте.

Алтернативен (и по-добър) начин да избегнете проблема си (и този, който винаги използвам в реалния живот) е да използвате QuotedStr() функция. След това същият код ще стане

aSQLText := 'INSERT INTO b_tbl (Name, Family) VALUES (%s, %s)'; 
aSQLCommand := Format(aSQLText, [QuotedStr(namee), QuotedStr(family)]);

Според онлайн помощта:

Това, което означава "повторно", е това, което наричам "удвояване". Защо това е важно и основната причина да използвам QuotedStr е да избягвам Sql db-engine да хвърля грешка, когато стойността, която искате да изпратите, съдържа един знак за кавички, както е в O'Reilly .

Опитайте да добавите ред, съдържащ това име, към вашата таблица с помощта на MySql Workbench и ще разберете какво имам предвид.

Така че използването на QuotedStr не само прави конструирането на SQL изрази като низове в кода на Delphi по-малко податливо на грешки, но също така избягва проблеми и в задния край.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да настроите индексната структура на ElasticSearch с множество обвързвания на обекти

  2. Не може да се получи пружинно зареждане за автоматично създаване на схема на база данни

  3. Как мога да върна изхода на централната таблица в MySQL?

  4. Подреждане по FIELD в MYSQL

  5. ГРЕШКА:Зареждането на локални данни е деактивирано - това трябва да бъде активирано както от страна на клиента, така и от страна на сървъра