procedure TForm1.ListView1Click(Sender: TObject);
var
    i:integer;
begin
    for i:=0 to listview1.items.count-1 do
        if listview1.Items[i].Selected then begin
           with dm.Query3 do  begin
              close;
              sql:='select * from s_question where question_id='+ListView1.Items[i].SubItems[3];
              open;
           end;
        end;
end;
各位,我这个程序显然是错误的,ListView1.Items[i].SubItems[3]是tstring类型的,而这个sql语句此处的参数必须是string;但是如何写呢,功能就是将ListView1.Items[i].SubItems[3]的值取出来查找数据库中和其值相同的记录:请教各位师傅!谢谢!

解决方案 »

  1.   

    procedure TForm1.ListView1Click(Sender: TObject);
    var
        i:integer;
    begin
        for i:=0 to listview1.items.count-1 do
            if listview1.Items[i].Selected then begin
               with dm.Query3 do  begin
                  close;
                  sql:='select * from s_question where question_id='''+ListView1.Items[i].SubItems[3] +'''';
                  open;
               end;
            end;
    end;
      

  2.   

    不行,错误提示是 :
    [Error] Unit1.pas(274): Incompatible types: 'TStrings' and 'String'
      

  3.   

    Query 的 SQL是Tstrings型的。你把string型付给SQL当然要出错
    用。
    SQL.ADD('......');