提示错误either bof or eof is true;但记录集肯定有记录,代码如下,帮看一下。 Cmb_DeptRedeploy.Clear;
With DataModule1 do
begin
Rs1.Recordset.Close;
Rs1.Active:=False;
Rs1.SQL.Clear;
Rs1.SQL.Add('Select Dept From Dept Where Factory=''' + Cmb_FactoryRedeploy.Text + ''' order by Dept');
Rs1.Prepared:=true;
Rs1.Active:=True;
caption:=inttostr(Rs1.recordcount);
//Rs1.Recordset.MoveFirst;//假如把这行代码加上就不会出错,
while not Rs1.Recordset.EOF do
begin
Cmb_DeptRedeploy.Items.Add(Rs1.Recordset.Fields['Dept'].Value);//这一句出错打开记录集的时候,指针应该在第一条记录,怎么回出错
Rs1.Recordset.MoveNext;
end;
if Cmb_DeptRedeploy.Items.Count>0 then
begin
Cmb_DeptRedeploy.ItemIndex:=0;
end
else
Cmb_DeptRedeploy.Text:='';
end;
With DataModule1 do
begin
Rs1.Recordset.Close;
Rs1.Active:=False;
Rs1.SQL.Clear;
Rs1.SQL.Add('Select Dept From Dept Where Factory=''' + Cmb_FactoryRedeploy.Text + ''' order by Dept');
Rs1.Prepared:=true;
Rs1.Active:=True;
caption:=inttostr(Rs1.recordcount);
//Rs1.Recordset.MoveFirst;//假如把这行代码加上就不会出错,
while not Rs1.Recordset.EOF do
begin
Cmb_DeptRedeploy.Items.Add(Rs1.Recordset.Fields['Dept'].Value);//这一句出错打开记录集的时候,指针应该在第一条记录,怎么回出错
Rs1.Recordset.MoveNext;
end;
if Cmb_DeptRedeploy.Items.Count>0 then
begin
Cmb_DeptRedeploy.ItemIndex:=0;
end
else
Cmb_DeptRedeploy.Text:='';
end;
解决方案 »
- paradox数据库如何动态增加字段,并设为主键
- 关于读取excel数据问题
- delphi可不可以编程添加windows的任务计划???
- 为什么前面的procedure无法调用后面的procedure?
- DELPHI中如何实现USB接口的数据传输?????
- Excel统计报表问题?很急!
- 关于application.messagebox的焦点问题
- 请问有在信息台作技术(编程)的吗?
- 我要在程序中动态地创建和释放窗体,但如何判断某一窗体是否已经创建?(无内容)
- XLSReadWrite 写的时候为什么会有上次的残留内容呢?这些残留该怎么清理?
- 如何将datagrid中的0,显示为空白
- 请教:为什么MDI窗口在调用childform时总是出错
Cmb_DeptRedeploy.Clear;
With DataModule1 do
begin
Rs1.Recordset.Close;
Rs1.Active:=False;
Rs1.SQL.Clear;
Rs1.SQL.Add('Select Dept From Dept Where Factory=''' + Cmb_FactoryRedeploy.Text + ''' order by Dept');
Rs1.open;
caption:=inttostr(Rs1.recordcount);
//Rs1.Recordset.MoveFirst;//假如把这行代码加上就不会出错,
while not Rs1.Recordset.EOF do
begin
Cmb_DeptRedeploy.Items.Add(Rs1.Recordset.Fields['Dept'].Value);//这一句出错打开记录集的时候,指针应该在第一条记录,怎么回出错
Rs1.Recordset.MoveNext;
end;
if Cmb_DeptRedeploy.Items.Count>0 then
begin
Cmb_DeptRedeploy.ItemIndex:=0;
end
else
Cmb_DeptRedeploy.Text:='';
end;
Cmb_DeptRedeploy.Clear;
With DataModule1 do
begin
Rs1.Recordset.Close;
Rs1.Active:=False;
Rs1.SQL.Clear;
Rs1.SQL.Add('Select Dept From Dept Where Factory=''' + Cmb_FactoryRedeploy.Text + ''' order by Dept');
Rs1.open;
caption:=inttostr(Rs1.recordcount);
//Rs1.Recordset.MoveFirst;//假如把这行代码加上就不会出错,
while not Rs1.Recordset.EOF do
begin
Cmb_DeptRedeploy.Items.Add(Rs1.Recordset.Fields['Dept'].Value);//这一句出错打开记录集的时候,指针应该在第一条记录,怎么回出错
Rs1.next;
end;
if Cmb_DeptRedeploy.Items.Count>0 then
begin
Cmb_DeptRedeploy.ItemIndex:=0;
end
else
Cmb_DeptRedeploy.Text:='';
end;
ftp://ftpc.borland.com/pub/bcppbuilder/devsupport/patches/bcpp5/
试试这样:
Cmb_DeptRedeploy.Items.Add(Rs1.Recordset.Fields['Dept'].AsString);
提示asstring没有定义
FactoryRedeployChange
但没有出错,觉得很奇怪
我一直用Recordset->ADOQuery,没有出现过上面的情况。
function TDataSet.FieldByName(const FieldName: string): TField;
begin
Result := FindField(FieldName);
if Result = nil then DatabaseErrorFmt(SFieldNotFound, [FieldName], Self);
end;
1、到delphi找到dephi的补丁
2、到delphi找到关于ado的补丁
3、到微软网站找最新的mdac版本
4、到微软网站找到最新的service pack4管同下,不信解决不了
Rs1.Active:=True;
caption:=inttostr(Rs1.recordcount);
这句以后,你的程序触发了一个事件,而这个事件中尼做了不该做的事情。
所以出错。
而你加了,movefirst就不错了。显而易见。好好看看。不谢。
应该不是这个原因,因为是出错了,我才加caption:=inttostr(Rs1.recordcount);看看是否有记录
数据库有主键,有影响吗?
好象ADO就是还有问题,不知道怎么回事。
2.Form中放入adoquery,什么都不用设置。
3.在form1的onshow事件中写代码,加入数据到combobox:代码如下:
//清空combobox控件
Cmb_DeptRedeploy.Clear;
//adoquery1连接到adoconnection1
adoquery1.connection:=DataModule1.adoconnection1;
//清空sql string
adoquery1.sql.clear;
//sql string
adoquery1.sql.add('Select Dept From Dept Where Factory=''' + Cmb_FactoryRedeploy.Text + ''' order by Dept'); //先关闭
adoquery1.close; //再打开
adoquery1.open; //如果有数据,加载到Cmb_DeptRedeploy.没有就不管了,因为前面已经清空了。
if adoquery1.eof=false then
begin
//第一个纪录,也可以不要此句
adoquery1.first;
while not adoquery1.eof do
begin
//加入
Cmb_DeptRedeploy.Items.Add(adoquery1.fieldbyname('Dept').asstring);
//下一个
adoquery1.next;
end;
//combobox第一行
Cmb_DeptRedeploy.itemindex:=0;
end; ...