1
我的意图:这是使用SQL参数的正确方法吗?
当用户选择了艺术家,唱片组合框将填补与特定艺术家有唱片分类目录。
的代码:
qDisco(TSQLQuery
)是结合至cbDisco(TComboBox
)数据和包含以下SQL:
SELECT DISTINCT discography
FROM Album
INNER JOIN Artist
ON Album.artist_id = Artist.id
WHERE Artist.name = :artist;
的:artist
参数是由下面的代码设定:
procedure Tmain.cbArtistChange(Sender: TObject);
begin
qDisco.ParamByName('artist').Value := cbArtist.Items[cbArtist.ItemIndex];
end;
我已确保:artist
参数存储cbArtist
当前项目的值,但是当我编译该应用程序时,cbDiscography
仍未填充。
我能做些什么来使其工作?
执行查询后是否返回任何内容。你在哪里将结果绑定到其他组合? –
如果我要使用静态值(例如“少女时代”),查询将起作用,但如果使用':artist'参数,则不会返回任何内容。这里是绑定的图像: http://i7.minus.com/ibs9ExlC3sKPld.png – ple103
我迷失在这里,仍然在Delphi 2005上,所以我没有XE来检查。当你说你使用静态时,你的意思是qDisco.ParamByName('artist')。Value:='static'。想知道参数的类型是否错误。 –