我用的是FOXPRO的表,表结构为tsmh\dzh\jq,分别为字符\字符\日期型的
我用的查询语句为sql.add('select * from sck where dzh=:xuehao');
parambyname('xuehao').AsString:=edit1.text;但是查询的结果是所有tsmh相同而jjq不同的记录如果有三条,可结果只显示一条,是否因为tsmh是关健字段,如果是这样的话该怎么办,还是说些记录被锁了而没激活,foxpro是否有这功能啊,难道一定要改表结构吗?请高手帮忙啊!
我用的查询语句为sql.add('select * from sck where dzh=:xuehao');
parambyname('xuehao').AsString:=edit1.text;但是查询的结果是所有tsmh相同而jjq不同的记录如果有三条,可结果只显示一条,是否因为tsmh是关健字段,如果是这样的话该怎么办,还是说些记录被锁了而没激活,foxpro是否有这功能啊,难道一定要改表结构吗?请高手帮忙啊!
你把数据放在 dbgrid中看就有三条啊
而在DBGrid1中只显示1条?
而在DBGrid1也显示3条,可实际上符合条件的有八条
査査有没有大小写等問題...
如果是这样,估计你的ADOQuery可能哪设置错了。
//query1?
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var n:integer;
begin
if key=vk_return then
begin
with query1 do
begin
close;
sql.Clear;
try
sql.add('select * from sck where dzh='''+edit1.text+''''); open;
except
sql.Clear;
end;
n:=query1.recordcount;
label2.Caption:=inttostr(n);
if query1.recordcount>=1 then
begin
label1.Visible:=true;
label1.Caption:=edit1.text+'共借书'+inttostr(n)+'本';
edit1.Text:=''
end
else begin
label1.Visible:=true;
label1.Caption:=edit1.Text+'无借书记录';
edit1.text
end;
end;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
query1.databasename:=extractfiledir(application.exename);
query1.Active:=true;
end;procedure TForm1.exit2Click(Sender: TObject);
begin
close;
end;