我有FDQuery和DataSource以及DBGrid。现在我在Button
中编写这段代码 FDQuery2->Active = false;
FDQuery2->SQL->Clear();
FDQuery2->SQL->Add(" SELECT C.patient_id, P.patient_name, C.check_id "
" FROM Checkup C "
" INNER JOIN Patient P ON (C.patient_id=P.patient_id) "
" WHERE C.today = " + MaskEdit1->Text +
" ORDER BY C.check_id ");
FDQuery2->Active = true;
我将FDQuery连接到DataSource,将tDataSource连接到DBGrid,但是当我单击Button时它不会显示行。我确信SQL代码是可行的,因为当我在SQL String中写入时,行已经显示出来了。 任何想法。
答案 0 :(得分:1)
在连接文本时,你错过了价值周围的configure
。更改您的'
条款:
WHERE
但你应该学习使用参数化查询。它允许数据库驱动程序处理诸如为您正确引用文本或格式化日期之类的事情,并且(重要的是)它也会阻止SQL注入。
FDQuery2->SQL->Clear();
FDQuery2->SQL->Add(" SELECT C.patient_id, P.patient_name, C.check_id "
" FROM Checkup C "
" INNER JOIN Patient P ON (C.patient_id=P.patient_id) "
" WHERE C.today = '" + MaskEdit1->Text + "'" +
" ORDER BY C.check_id ");