Str2:=Edit4.Text;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select * from BigSlipTab where B_Name='''+Str2+'''');
ADOQuery2.Open;我用这段程序来进行查询,当我查到符合条件的记录是,怎么把指针定位在该条记录上?
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select * from BigSlipTab where B_Name='''+Str2+'''');
ADOQuery2.Open;我用这段程序来进行查询,当我查到符合条件的记录是,怎么把指针定位在该条记录上?
var
memsize:integer;
buffer:pchar;
myfile:tfilestream;
stream:TStream;
i:integer;
str1,Str2:String;
begin
Str1:=Edit3.Text;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from BigSlipTab where B_Number='''+Str1+'''');
ADOQuery1.Open; Str2:=Edit4.Text;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select * from BigSlipTab where B_Name='''+Str2+'''');
ADOQuery2.Open;
if (ADOQuery1.RecordCount=0) And (ADOQuery2.RecordCount=0) then
Messagebox(MainFrm.Handle,'没有查到符合条件的信息!','查询提示',MB_OK+MB_ICONINFORMATION)
else
begin
myfile:=tfilestream.create('c:\temp.tmp',fmcreate);with adotable1 do
begin
open;
stream:=createblobstream(fieldbyname('B_Memo'),bmRead);
memsize:=stream.size;
inc(memsize);
buffer:=allocmem(memsize);
try
stream.read(buffer^,memsize);
myfile.write(buffer^,memsize);
finally
myfile.Free;
stream.free;
end;
end;
if fileexists('c:\temp.doc') then
deletefile('c:\temp.doc');
if fileexists('c:\temp.tmp') then
begin
renamefile('c:\temp.tmp','c:\temp.doc');
shellexecute(Handle,Nil,'c:\temp.doc',Nil,Nil,SW_SHOWNORMAL);
end;
end;
end;我用这段代码来打开WORD文档,但为什么会打开的总是第一条记录呢?
ClientDataSet1.RecNo;
ADOQuery1.RecNo;
应该让adoquery和adotable建立联系才能定位正确的记录