我是第一次用ADO连接Access数据库,却怎么也读不到数据:程序如下:代码好像没有什么错误,但是就是显示找不到字段名'nodeid';是不是和SQL SERVER数据库有不同的读取方式的地方啊?望高人指点一二,用shoemessage(fieldbyname('nodeid').asstring),也是试了就是提示找不到字段同。
procedure Tformain.FormShow(Sender: TObject);
var
p:pstr;
node:ttreenode;
begin
with datamodule1.adotgroup,treeview1 do
begin
close;
sql.Clear;
sql.Add('select * from [tgroup]') ;
open;
first;
new(p);
p^:=fieldbyname('nodeid').AsString;//找不到此字段
node:=items.AddChildObject(nil,fieldbyname('name').AsString,p);
if hassub(node) then
items.AddChildObject(node,'',nil);
end;
end;
我另开了一个空白窗体也试过,还是不行,也读不到数据,是不是有什么要注意的地方,我不知道,能否有高人指点一下。
procedure Tformain.FormShow(Sender: TObject);
var
p:pstr;
node:ttreenode;
begin
with datamodule1.adotgroup,treeview1 do
begin
close;
sql.Clear;
sql.Add('select * from [tgroup]') ;
open;
first;
new(p);
p^:=fieldbyname('nodeid').AsString;//找不到此字段
node:=items.AddChildObject(nil,fieldbyname('name').AsString,p);
if hassub(node) then
items.AddChildObject(node,'',nil);
end;
end;
我另开了一个空白窗体也试过,还是不行,也读不到数据,是不是有什么要注意的地方,我不知道,能否有高人指点一下。
到底有没有nodeid这个字段??
for i:= 0 to Fields.Count - 1 do
begin
ShowMessage(Fields[i].FieldName);
end;
sql.Add('select * from [tgroup]')
换成
sql.Add('select * from tgroup')
试试看?
sql.Add('select * from [tgroup]')
换成
sql.Add('select * from tgroup')
试试看?
不能这样的换,下面的SQL语句对于access数据库来讲是错误的,在这里,tgroup是SQL的保留字,须加上[]号三楼的也不行,根本提不到字段出,如果能出来就好了。