一个Query问题---急,请高手们帮我see在什么地方出错!!!------在线等候your help!
implementation
procedure TForm2.search();//把最终查询结果显示到memeo中
var
sFile:string; //图片存取路径和名称
begin
num:=0;
ZhName:='';
JieName:='';
try
ZhName:=Query2.FieldByName('zh_name').AsString;
JieName:=Query1.FieldByName('j_num').AsString;
//Query1.First;
count:= Query2.fieldbyname('JiLu_num').AsInteger;
Query1.MoveBy(count);
while not Query2.Eof do
if OK='0' then
if Query2.FieldByName('flag').AsString='0' then
begin
DBMemo1.Lines.Add(Query2.FieldByName('document').AsString);
Next;
num:=num+1;
count:=count+1;
continue;
end //end flag 0
else if Query1.fieldbyname('flag').AsString='1' then
begin
OK:='1'; //修改显示暂停标志为1——暂停
sFile:=Query2.fieldbyname('document').AsString;//取要加载的图片的路径和名称
Image1.Picture.LoadFromFile(sFile); //动态加载.bmp图片
showmessage('如右图所示');
num:=num+1;
count:=count+1;
end //end flag 1
else if Query2.fieldbyname('flag').AsString='3' then
begin
OK:='1'; //修改显示暂停标志为1——暂停
PlayDocument.Enabled:=true;
filename:='';
filename:= Query2.fieldbyname('document').AsString;
showmessage('要查看多媒体演示,请单击"多媒体演示"!');
count:=count+1;
num:=num+1;
end //end flag 3
else
showmessage('数据库中的标识符falg出错')
else
break; //break while
except
showmessage('数据库出错!!');
end //end 例外处理
end;
{$R *.dfm}
procedure TForm2.PlayDocumentClick(Sender: TObject);
begin
ShellExecute(handle,'open',PChar(filename),'-s','',SW_SHOWNORMAL); //执行外部可执行文件(*.exe)
OK:='0'; //修改可继续执行标记OK
PlayDocument.Enabled:=false;
end;
procedure TForm2.PriZHClick(Sender: TObject); //上一章
var
zhang,jie:string;
begin
try
table2.Open;
table2.First;
jie:=table2.fieldbyname('j_num').AsString ;
table2.Close;
except
showmessage('访问时Table2出错!');
end;
zhang:=inttostr(strtoint(DBEdit_zhnum.Text)+1);
if strtoint(zhang)>0 then
begin
DBEdit_zhnum.Text:=zhang;
DBEdit_jnum.Text:=jie;
OK:='0';
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select zhang_table.zh_name,jie_table.j_name,docu_table.JiLu_num,docu_table.flag,docu_table.document');
Query1.SQL.Add('from zhang_table,jie_table,docu_table');
Query1.SQL.Add('where docu_table.zh_num=zhang_table.zh_num and docu_table.j_num=jie_table.j_num');
Query1.SQL.Add('order by docu_table.j_num');
Query1.ExecSQL;
Query2.ExecSQL;
search();
DBEdit_zhangN.Text:=ZhName ;
DBEdit_jieN.Text:=JieName;
end
else showmessage('目前为第一章');
end;
procedure TForm2.PriJieClick(Sender: TObject); //上一节
var
zhang,jie:string;
begin
try
table2.Open;
table2.Prior ;
jie :=table2.fieldbyname('j_num').AsString;
zhang:=table2.fieldbyname('zh_num').AsString;
table2.Close;
except
showmessage('访问时Table2出错!');
end;
DBEdit_zhnum.Text:=zhang;
DBEdit_jnum.Text:=jie;
if zhang=DBEdit_zhnum.Text then
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select zhang_table.zh_name,jie_table.j_name,docu_table.JiLu_num,docu_table.flag,docu_table.document');
Query1.SQL.Add('from zhang_table,jie_table,docu_table');
Query1.SQL.Add('where docu_table.zh_num=zhang_table.zh_num and docu_table.j_num=jie_table.j_num');
Query1.SQL.Add('order by docu_table.j_num');
Query1.ExecSQL;
Query2.ExecSQL;
OK:='0'; //修改暂停标志
search();
DBEdit_zhangN.Text:=ZhName ;
DBEdit_jieN.Text:=JieName;
end
else showmessage('目前为本章第一节');
end;
//以下还有类似的“下一节”按钮操作
procedure TForm2.studyClick(Sender: TObject); //学习
var
zh_num,j_num:string;
begin
OK:='0';
zh_num:=DBEdit_zhnum.Text;
j_num:=DBEdit_jnum.Text;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select zhang_table.zh_name,jie_table.j_name,docu_table.JiLu_num,docu_table.flag,docu_table.document');
Query1.SQL.Add('from zhang_table,jie_table,docu_table');
Query1.SQL.Add('where docu_table.zh_num=zhang_table.zh_num and docu_table.j_num=jie_table.j_num');
Query1.SQL.Add('order by docu_table.j_num');
Query1.ExecSQL;
Query2.ExecSQL;
search();
DBEdit_zhangN.Text:=ZhName ;
DBEdit_jieN.Text:=JieName;
end;
end.