其实就是两个表,分别用ADOTable1、ADOTable2连接,用ADOQuery1操作SQL,先把ssource表清空,然后,把snext表的所有内容给ssource表,然后,再把snext表清空,假设snext表有50条记录,那么最后ssource表应该有50条记录,这是正确的,通过ACCESS查看是有50条记录,可是用ADOTable1.RecordCount查看,总是与实际记录数不对应,这个问题真是急死我了,有谁能帮我,下面是源码
procedure TfrmMain.btnNextToSrcClick(Sender: TObject);
var
StrSql: String ;
begin
if Application.MessageBox ('确认要清空吗?',
'清空', MB_YESNO + MB_ICONQUESTION) = IDNO then
exit ; strSql := 'delete * from ssource' ; //清空ssource表中的数据
with ADOQuery1 do
begin
Close ;
SQL.Clear ;
SQL.Text := strSql ;
ExecSQL ;
end; //表snext中的数据导入ssource表
ADOTable2.Recordset.MoveFirst ; while not ADOTable2.Recordset.EOF do
begin
ADOTable1.InsertRecord ([ADOTable2.Recordset.Fields['slbh'].Value,
ADOTable2.Recordset.Fields['xlth'].Value,
ADOTable2.Recordset.Fields['sfzh'].Value,
ADOTable2.Recordset.Fields['yhm'].Value,
ADOTable2.Recordset.Fields['slsj'].Value,
ADOTable2.Recordset.Fields['dq'].Value,
ADOTable2.Recordset.Fields['cjbz'].Value,
ADOTable2.Recordset.Fields['cjcs'].Value]) ; ADOTable2.Recordset.MoveNext ;
end ; strSql := 'delete * from snext' ; //清空snext表中的数据
with ADOQuery1 do
begin
Close ;
SQL.Clear ;
SQL.Text := strSql ;
ExecSQL ;
end; ShowMessage ('ok') ;
end;
procedure TfrmMain.btnNextToSrcClick(Sender: TObject);
var
StrSql: String ;
begin
if Application.MessageBox ('确认要清空吗?',
'清空', MB_YESNO + MB_ICONQUESTION) = IDNO then
exit ; strSql := 'delete * from ssource' ; //清空ssource表中的数据
with ADOQuery1 do
begin
Close ;
SQL.Clear ;
SQL.Text := strSql ;
ExecSQL ;
end; //表snext中的数据导入ssource表
ADOTable2.Recordset.MoveFirst ; while not ADOTable2.Recordset.EOF do
begin
ADOTable1.InsertRecord ([ADOTable2.Recordset.Fields['slbh'].Value,
ADOTable2.Recordset.Fields['xlth'].Value,
ADOTable2.Recordset.Fields['sfzh'].Value,
ADOTable2.Recordset.Fields['yhm'].Value,
ADOTable2.Recordset.Fields['slsj'].Value,
ADOTable2.Recordset.Fields['dq'].Value,
ADOTable2.Recordset.Fields['cjbz'].Value,
ADOTable2.Recordset.Fields['cjcs'].Value]) ; ADOTable2.Recordset.MoveNext ;
end ; strSql := 'delete * from snext' ; //清空snext表中的数据
with ADOQuery1 do
begin
Close ;
SQL.Clear ;
SQL.Text := strSql ;
ExecSQL ;
end; ShowMessage ('ok') ;
end;
ADOTable1.Refresh;
或者重新关开一下:
ADOTable1.Close;
ADOTable1.Open;建议用Insert SQL文来挿入是不是更好?
INSERT INTO ssource SELECT * FROM snext