一段代码,请大家看看:
procedure TForm8.FormShow(Sender: TObject);
var
id,id1:integer;
laiyuan:string;
begin
with query1 do
begin
sql.Text:='select * from fanying.db';
open;if recordcount<>0 then
for id:=1 to recordcount do
begin
if fieldbyname('New').AsBoolean=true then
begin
if form8.Table1.RecordCount=0 then
form8.Table1.Append
else
form8.Table1.Insert;
form8.Table1.Post;
form8.Table1.Edit;
form8.table1.FieldByName('序号').AsInteger:=id;
form8.Table1.Edit;
form8.Table1.FieldByName('来源').AsString:=fieldbyname('来源').AsString;
fieldbyname('New').AsBoolean:=false;
for id1:=id+1 to recordcount do
with form8 do
begin
table1.Next;
laiyuan:=table1.fieldbyname('来源').AsString;
table1.Edit;
table1.FieldByName('序号').AsInteger:=id1;
table1.Edit;
table1.FieldByName('来源').AsString:=laiyuan;
end;
end;
next;
end;
end;
end;这个程序的功能是通过去query组件从一个表中读入数据,通过判断字段new来知道是不是一个新纪录,是的话,在这个form8窗体里面添加记录,然后把相应的来源,以及序号赋给form8的table1的相应字段,但是程序运行就是出现这个错误,请大家帮忙看看啊!!
procedure TForm8.FormShow(Sender: TObject);
var
id,id1:integer;
laiyuan:string;
begin
with query1 do
begin
sql.Text:='select * from fanying.db';
open;if recordcount<>0 then
for id:=1 to recordcount do
begin
if fieldbyname('New').AsBoolean=true then
begin
if form8.Table1.RecordCount=0 then
form8.Table1.Append
else
form8.Table1.Insert;
form8.Table1.Post;
form8.Table1.Edit;
form8.table1.FieldByName('序号').AsInteger:=id;
form8.Table1.Edit;
form8.Table1.FieldByName('来源').AsString:=fieldbyname('来源').AsString;
fieldbyname('New').AsBoolean:=false;
for id1:=id+1 to recordcount do
with form8 do
begin
table1.Next;
laiyuan:=table1.fieldbyname('来源').AsString;
table1.Edit;
table1.FieldByName('序号').AsInteger:=id1;
table1.Edit;
table1.FieldByName('来源').AsString:=laiyuan;
end;
end;
next;
end;
end;
end;这个程序的功能是通过去query组件从一个表中读入数据,通过判断字段new来知道是不是一个新纪录,是的话,在这个form8窗体里面添加记录,然后把相应的来源,以及序号赋给form8的table1的相应字段,但是程序运行就是出现这个错误,请大家帮忙看看啊!!
//form8.Table1.Post;
//form8.Table1.Edit;
form8.table1.FieldByName('序号').AsInteger:=id;
//form8.Table1.Edit;
form8.Table1.FieldByName('来源').AsString:=fieldbyname('来源').AsString;
fieldbyname('New').AsBoolean:=false;
for id1:=id+1 to recordcount do
with form8 do
begin
table1.Next;
laiyuan:=table1.fieldbyname('来源').AsString;
//table1.Edit;
table1.FieldByName('序号').AsInteger:=id1;
//table1.Edit;
table1.FieldByName('来源').AsString:=laiyuan;
end;
fieldbyname('New').AsBoolean:=false;
你的这个方法是对的啊,前面我没有看清,漏加了个什么edit啊,但是现在又有新的错误了啊,就是报什么不可以对制度表格进行读写操作的啊,但是我的那个什么fanying.db是可以读写的啊
procedure TForm8.FormShow(Sender: TObject);
var
id,id1:integer;
laiyuan:string;
begin
with query1 do
begin
sql.Text:='select * from fanying.db';
open;if recordcount<>0 then
for id:=1 to recordcount do
begin
if fieldbyname('New').AsBoolean=true then
begin
if form8.Table1.RecordCount=0 then
form8.Table1.Append //??
else
form8.Table1.Insert;//?? Append,Insert有区别吗?
form8.Table1.Post;//??此时存盘,没有赋值呀?
form8.Table1.Edit;
form8.table1.FieldByName('序号').AsInteger:=id;
//??没有提交编辑的数据,修改可能无效!
form8.Table1.Edit;//标记2
form8.Table1.FieldByName('来源').AsString:=fieldbyname('来源').AsString;
fieldbyname('New').AsBoolean:=false;
for id1:=id+1 to recordcount do
with form8 do
begin
table1.Next;//这句话把标记2处的编辑状态变在非编辑状态!之前没有POST语句,修改也没存盘.
laiyuan:=table1.fieldbyname('来源').AsString;
table1.Edit;
table1.FieldByName('序号').AsInteger:=id1;
table1.Edit;//上面少了行table1.Post;下面也一样!
table1.FieldByName('来源').AsString:=laiyuan;
end;
end;
next;
end;
end;
end;总之这是一个不能用的代码,问题不是一个,而是一堆,好好看看书!
那么有耐心啊,帮我看代码啊
or edit mode.