MySQL Workbench
 sql >> база данни >  >> Database Tools >> MySQL Workbench

SQL заявката работи в Workbench, но получава грешка „Не може да се преобразува тип вариант“ с точно същата заявка в Delphi

Съгласен съм с коментара на SirRufo тук. Правилният отговор на "как да направя това?" е "не правете това; това е грешен начин да го направите."

Ако поставите стойности директно в заявката по този начин, хакерите могат да намерят начин да поставят във вашата заявка неща, които се интерпретират като SQL команди. Това е известно като SQL инжекция , и е отговорен за щетите за милиарди долари през последните няколко десетилетия. (Не преувеличавам.)

Правилният начин да го направите е като отделите чисто SQL кода от данните си, като използвате параметри, така:

ADOQuery1.SQL.Clear;

//: before an identifier specifies a parameter
ADOQuery1.SQL.Add('SELECT tbl.emailAddress, tbljob.Time FROM '+
  'dbwindowwash.tblclient, dbwindowwash.tbljob, dbwindowash.tbljobclientworker '+
  'WHERE tbljobclientworker.jobID = tbljob.jobID AND '+
  'tbljobclientworker.clientID = tblclient.clientID AND tbljob.Date = :date';

//parse the query and find parameter declarations
ADOQuery1.Prepare;

//set a value for the parameter
ADOQuery1.ParamByName['date'].AsDateTime := TodaysDate;

ADOQuery1.Open

Точният синтаксис за това как да зададете стойността на параметър може да се различава от един тип набор от данни до друг, но това трябва да ви даде основната идея.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Как да копирам таблица между два модела в работната маса на Mysql?

  2. Получих грешка в размера на java heap при опит за групиране на 15980 документа чрез carrot2workbench

  3. Работното пространство на Eclipse се срива при стартиране

  4. Грешка в окончателната последователност на стартиране - Отстраняване на грешки в работната маса на системата Eclipse за STM32L476

  5. Създаване на УНИКАЛНО ограничение върху множество колони в MySQL Workbench EER диаграма