请帮助我。关于ADO中ADODataSet的记录移动问题(20分)

  • 主题发起人 主题发起人 nzfboy
  • 开始时间 开始时间
N

nzfboy

Unregistered / Unconfirmed
GUEST, unregistred user!
1.我为什么用adodataset.recordset.movenext无法使记录下移一位。
2.//以下三条为什么不可以在程序中给定。
//adodst.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;User ID=admin;Data Source=H:/project/DxTreelist/db1.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False'
//adodst.CommandType :=cmdtext;
//adodst.CommandText :='select * from SysSet';

原码:
放三个控件 adoDataset,botton1,memo1
procedure TForm1.Button1Click(Sender: TObject);
var
i :integer;
strTemp:string;
begin

adodst.Open ;
showmessage(inttostr(adodst.RecordCount ));
for i:=0 to adodst.RecordCount -1 do
begin
strTemp := adodst.Recordset.Fields[1].Name ;
memo1.lines.add( strTemp );
//记录并没有向后移动
adodst.Recordset.MoveNext ;
end;
end;
 
因为RecordSet是ADO的原生接口。
试试这样:
adodst.Recordset.MoveFirst;
while not adodst.RecordSet.Eof do
begin
strTemp := adodst.Recordset.Fields[1].Value ;
^^^^^^^
memo1.lines.add( strTemp );
//记录并没有向后移动
adodst.Recordset.MoveNext ;
end;
 
To:TYZhang
strTemp := adodst.Recordset.Fields[1].Value ;
^^^^^^^
我输入前面两个点,程序都会自动出现下拉列表。在最后的fields[1].的下拉框中只有三个
选项:Get_name,Name,Propeties。并无.value;
对了我的开发环境是win2000,+delphi5
 
因为你前面的strTemp 是String型,而Value是Variant.
Delphi要进行类型匹配,当然出不来。
 
因我从VB出身,故对匹配不熟悉。
请问,我要把 boolean与字符或数字转换如何才可以?
 
因为你取的是字段的名称,当然movenext都是一样,其实movenext是有起作用的
strtmp:=adotable1.FieldByName('字段名').AsString;
delphi中的下拉框只会给出与变量相同类型的属性
 
为什么要写成那样啊,只要直接写
adost.next;
不就行了吗?
在delphi中,一般不需要直接操作recordset对象的啊,因为delphi已经把它
封装成vcl的数据集了,相应方法和属性和一般的数据集没有太多区别,而且
功能更加强大。
 
adost.next;
 
adodst.Recordset.Movelast;
adodst.Recordset.MoveFirst;
while not adodst.RecordSet.Eof do
begin
strTemp := adodst.Recordset.Fields[1].Value ;
memo1.lines.add( strTemp );
adodst.Recordset.MoveNext ;
end;
 
后退
顶部