我在
procedure TfrmMain.QueryQuestionAfterScroll(DataSet: TDataSet);
var strQuestID,strQuestValue :string ;
var DbRecNo,i:integer;
begin
if fsCreating in FormState then Exit;
with QueryQuestion do
begin
strQuestID := Fieldbyname('QuestID').asstring;
QueryAnswer.SQL.Clear;
QueryAnswer.SQL.Add('select * from QuestionAnswer where QuestID='+strQuestID);
QueryAnswer.Open;
RadioGroupAnswer.Items.Clear;
while not QueryAnswer.Eof do
begin
strQuestValue:= QueryAnswer.FieldByName('ID').AsString+'/'+QueryAnswer.FieldByName('Memo').AsString;
RadioGroupAnswer.Items.Add(strQuestValue);
QueryAnswer.next;
end;
RadioGroupAnswer.Items.Add('不选'); DbRecNo:=DBGridQuestion.DataSource.DataSet.RecNo; for i:=Low(RadioRecNO) to High(RadioRecNO) do
begin
if RadioRecNO[DbRecNo-1]<>'' then
begin
RadioGroupAnswer.ItemIndex:=strtoint(RadioRecNO[DbRecNo-1]);
end
end end
end;
里面用DbRecNo:=DBGridQuestion.DataSource.DataSet.RecNo;为什么得不到DBGridQuestion的当前的纪录号?调试发现这个值等于-1.
请大家帮帮忙
procedure TfrmMain.QueryQuestionAfterScroll(DataSet: TDataSet);
var strQuestID,strQuestValue :string ;
var DbRecNo,i:integer;
begin
if fsCreating in FormState then Exit;
with QueryQuestion do
begin
strQuestID := Fieldbyname('QuestID').asstring;
QueryAnswer.SQL.Clear;
QueryAnswer.SQL.Add('select * from QuestionAnswer where QuestID='+strQuestID);
QueryAnswer.Open;
RadioGroupAnswer.Items.Clear;
while not QueryAnswer.Eof do
begin
strQuestValue:= QueryAnswer.FieldByName('ID').AsString+'/'+QueryAnswer.FieldByName('Memo').AsString;
RadioGroupAnswer.Items.Add(strQuestValue);
QueryAnswer.next;
end;
RadioGroupAnswer.Items.Add('不选'); DbRecNo:=DBGridQuestion.DataSource.DataSet.RecNo; for i:=Low(RadioRecNO) to High(RadioRecNO) do
begin
if RadioRecNO[DbRecNo-1]<>'' then
begin
RadioGroupAnswer.ItemIndex:=strtoint(RadioRecNO[DbRecNo-1]);
end
end end
end;
里面用DbRecNo:=DBGridQuestion.DataSource.DataSet.RecNo;为什么得不到DBGridQuestion的当前的纪录号?调试发现这个值等于-1.
请大家帮帮忙
解决方案 »
- 玩过虚拟串口的朋友进来帮忙看下
- 关于DBGrid的两个问题
- 请问一下有没有人做过B/S结构的服务器端.小弟公司刚碰到这样的项目.请问一下,要从哪里入手,要学什么东西.??
- 继续提问:关于内存操作的问题,帮帮忙看看,分不够可在加!!!
- 请问哪有《DELPHI5.x分布式多层应用系统编》的附书源码下载? ——不是书,是源码!
- 求助:ftp上传找不到系统路径 或者拒绝访问
- 注册表的问题。在帮帮我吧!!!
- 小菜问题,SQL命令如何处理对时间的查询???????????????
- 关于WORD文档的操作问题?
- 在那里设置背景图片|?
- 如何终止一DOS程序?
- delphi7编译时,凡是遇到使用pointer的地方 就会 报unsafe type 提示,怎么去掉??
放到
strQuestID := Fieldbyname('QuestID').asstring;
的前面看看
请确保数据已打开
var i:Integer;
begin
QueryQuestion.Close;
QueryQuestion.Open;
SetLength(arrayfield,QueryQuestion.RecordCount);
SetLength(arrayvalue,QueryQuestion.RecordCount);
SetLength(arrayerrorvalue,QueryQuestion.RecordCount);
SetLength(RadioRecNO,QueryQuestion.RecordCount); DBGridQuestion.DataSource.DataSet.RecNo:=1; while not QueryQuestion.Eof do begin
for i := Low(arrayfield) to High(arrayfield) do
begin
arrayvalue[i] := '0';
RadioRecNO[i] := '';
arrayfield[i] :=QueryQuestion.FieldByName('ErrorAttri').AsString;
arrayerrorvalue[i]:=QueryQuestion.FieldByName('ErrorValue').AsString;
showmessage(arrayfield[i]);
QueryQuestion.Next;
end;
end;end;在Fromshow中已经打开了QueryQuestion
As implemented in TDataSet, the value of RecNo is always -1. 不知道是什么意思
begin
DataSet1NO.Value:=SQLClientDataSet1.RecNo;
end
;
DataSet1NO是在daset里面添加的一个字段,双击就可以dataset就可以添加
================================================================
你说的是这个吗?它是说TDataSet对象的RecNo属性值总等于-1,只有它的派生类重新实现后,才有正确的属性值。你把
with QueryQuestion do
改为:
with TTable(QueryQuestion) do就可以了,当然我举的是一个例子,你如果使用TADOQurey,就转化成相应类型。