为什么我的TADOQuery组件在执行完Select后,再执行insert或update就出现内存写错误?
为什么我的TADOQuery组件在执行完Select后,再执行insert或update就出现内存写错误?
先执行如下A程序:
ADOQ.SQL.Clear;
ADOQ.SQL.Add('select * from TUser');
ADOQ.Open;
再执行如下B程序:
ADOQ.SQL.Clear;
ADOQ.SQL.Add('insert into TTest values('+QuotedStr('abc')+')');
ADOQ.ExecSQL;
时出现错误,具体错误如下:
Project Project1.exe raised exception class C0000005 with message 'access violation at 0x1f487cab: write of address 0x0101f020'. Process stopped. Use Step or Run to continue.
但如果将B程序换成如下程序:
ADOQ.SQL.Clear;
ADOQ.SQL.Add('select * from TTest');
ADOQ.Open;
ADOQ.Append;
ADOQ.Fieldbyname('FTest').Value:='abc';
ADOQ.Post;
则不会出错.
百思不得其解,恳请高手指点!