有两个表,一个学生基本情况信息表(Student)有字段Student_ID(学号),Name(姓名)等,另一个学生成绩表(Achievement),有Student_ID(学号)
我做如下查询:
按学生的姓名查询,提示出错,哪位高人能替我解决?
谢谢!THANKS! Case RadioGroup1.ItemIndex of
0:
with Fdm.AQ_Single do
begin
close;
sql.clear;
SQL.Add('select Achievement.* from Achievement,Student where Student_ID in (SELCECT Student_ID FROM Student where Name like ''%'+Edit1.Text+'%'')');
open;
end;
1:
with Fdm.AQ_Single do
begin
Close;
sql.Clear;
sql.add('select Achievement.* from Achievement,Student where Name in (SELECT Student_ID FROM Student Where Name='''+Edit1.text+''')');
Open;
end;
end;
我做如下查询:
按学生的姓名查询,提示出错,哪位高人能替我解决?
谢谢!THANKS! Case RadioGroup1.ItemIndex of
0:
with Fdm.AQ_Single do
begin
close;
sql.clear;
SQL.Add('select Achievement.* from Achievement,Student where Student_ID in (SELCECT Student_ID FROM Student where Name like ''%'+Edit1.Text+'%'')');
open;
end;
1:
with Fdm.AQ_Single do
begin
Close;
sql.Clear;
sql.add('select Achievement.* from Achievement,Student where Name in (SELECT Student_ID FROM Student Where Name='''+Edit1.text+''')');
Open;
end;
end;
0:
with Fdm.AQ_Single do
begin
close;
sql.clear;
SQL.Add('select * from Achievement where Student_ID in (SELCECT Student_ID FROM Student where Name like ''%'+Edit1.Text+'%'')');
open;
end;
1:
with Fdm.AQ_Single do
begin
Close;
sql.Clear;
sql.add('select * from Achievement where Name in (SELECT Student_ID FROM Student Where Name='''+Edit1.text+''')');
Open;
end;
end;
你用ADODATASET组件看看,很方便的。
如果你用EDIT1输入姓名查询,那在BUTTON中输入代码如下
VAR I,J:INTEGER;
ADODATASET1。FIRST;
FOR I:=1 TO ADODATASET1。RECORDCOUNT DO
BEGIN
IF ADODATASET1。FIELDBYNAME(‘姓名’)。ASSTRING=EDTI1。TEXT
THEN BEGIN
------
姓名查询正确后的代码
-----
J:=1;
BREAK;
END;
ADODATASET1。NEXT;
END;
IF J=0 THEN SHOWMESSAGE(‘你的姓名不正确’);