with data1.ADOjyxxcx do
begin
close;
sql.Clear;
sql.text:='select t.书名,t.ISBN,t.借书日期,t.应还日期 from'+
' (select sjxxb.书名,jyxxb.ISBN,jyxxb.姓名,jyxxb.借书日期,jyxxb.应还日期 '+
' from 书籍信息表 sjxxb right outer join 借阅信息表 jyxxb on sjxxb.ISBN=jyxxb.ISBN '+
' where 姓名=:a) t' ;
parameters.parambyname('a').value:=trim(edit1.text)
open;
end;
代码如上 可dbgrid 里就没有数据了
但如果换成 姓名=''name''
就会有 name 的数据 不知道怎么解决
麻烦各位大侠 谢谢~~
begin
close;
sql.Clear;
sql.text:='select t.书名,t.ISBN,t.借书日期,t.应还日期 from'+
' (select sjxxb.书名,jyxxb.ISBN,jyxxb.姓名,jyxxb.借书日期,jyxxb.应还日期 '+
' from 书籍信息表 sjxxb right outer join 借阅信息表 jyxxb on sjxxb.ISBN=jyxxb.ISBN '+
' where 姓名=:a) t' ;
parameters.parambyname('a').value:=trim(edit1.text)
open;
end;
代码如上 可dbgrid 里就没有数据了
但如果换成 姓名=''name''
就会有 name 的数据 不知道怎么解决
麻烦各位大侠 谢谢~~
如果不是这个就是你的sql写的有问题,没有查出结果
begin
close;
sql.Clear;
sql.text:='select t.书名,t.ISBN,t.借书日期,t.应还日期 from'+
' (select sjxxb.书名,jyxxb.ISBN,jyxxb.姓名,jyxxb.借书日期,jyxxb.应还日期 '+
' from 书籍信息表 sjxxb right outer join 借阅信息表 jyxxb on sjxxb.ISBN=jyxxb.ISBN '+
' where 姓名='+#39+trim(edit1.text)+#39+') t' ;
open;
end;
begin
close;
sql.Clear;
sql.text:='select t.书名,t.ISBN,t.借书日期,t.应还日期 from'+
' (select sjxxb.书名,jyxxb.ISBN,jyxxb.姓名,jyxxb.借书日期,jyxxb.应还日期 '+
' from 书籍信息表 sjxxb right outer join 借阅信息表 jyxxb on sjxxb.ISBN=jyxxb.ISBN '+
' where 姓名=''+trim(edit1.text+'') t' ;
open;
end;在sqlserver中给字符串型赋值时要加引号的,这里就错在这里
查询数据的问题,应该是字符串引用的问题,只要引号打对了就不会有问题。
在DELPHI里,最好用参数的模式,常用的是Format('',[]);
如果把a 换成一个实际的名称
sql查询分析器 里面是可以通过的