【发布时间】:2023-03-26 08:43:01
【问题描述】:
我试图通过 delphi 上的 ado 数据库表进行过滤。
我有一个连接到查询 (qryData) 的 dbgrid,只要执行此代码,dbgrid 就会变为空白,并且不会再发生任何事情。即使我输入了一个有效的字段名称,它也应该在 dbgrid 中显示它,但它什么也不显示。我做错了什么?
procedure TfrmProjects.cbxColumnsSelect(Sender: TObject);
begin
if edtsearch.Text = '' then
begin
showmessage('The search field should be entered');
exit;
end
else
begin
ssearch:= edtsearch.Text;
showmessage(ssearch);
end;
if cbxColumns.ItemIndex = -1 then
begin
showmessage('Please select a field');
exit;
end
else
begin
scolumn:= cbxColumns.Items[cbxColumns.itemindex];
showmessage(scolumn);
end;
with dmUsers do
begin
with qryData do
begin
sql.Clear;
sql.Text := 'Select * FROM tbl_projects where' + quotedstr(scolumn) + ' = ' +quotedstr(ssearch);
open;
end;
end;
【问题讨论】:
-
抱歉我的代码块不太整齐
-
“过滤器”可能不是您想要做的事情的正确词。只是要明确一点:您要做的是让用户从组合框中选择用户希望搜索的关联表中的列,提示用户在表列中匹配一个值,然后执行一个 Sql 查询来查找与查询匹配的表行?
-
@user2595912 :
... where' + quotedstr(scolumn)将变为... where"xyfield"如您所见,where和"xyfield"之间没有空格! -
MySQL 不是 SQL Server
标签: mysql sql sql-server delphi delphi-7