Delphi,错误:“地址xxxxxxxx的访问冲突。读取地址yyyyyyyy“,在AdoQuery.SQL.Text:=''' [英] Delphi, error :"Access violation at address xxxxxxxx. Read of address yyyyyyyy", at AdoQuery.SQL.Text:='''
本文介绍了Delphi,错误:“地址xxxxxxxx的访问冲突。读取地址yyyyyyyy“,在AdoQuery.SQL.Text:='''的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
地址xxxxxxxx上的访问冲突。读取了地址yyyyyyyyy
"Access violation at address xxxxxxxx. Read of address yyyyyyyy"
在这个项目上,我有超过200个这样的过程,但是只有此过程会出错(仅Windows XP)。.
On this project i have more than 200 procedures like that, but only this procedure gets error (only windows xp)..
过程比有错误:
Procedure TfMain.CreateNewDocument(p_money_direction,p_status,p_base:integer);
begin
With fMain.ADOTemp do
Begin
SQL.Clear;
SQL.Text:='INSERT INTO documents '+
'(document_date,fk_id_status,money_direction,'+
'paid,addition,saving,fk_id_base,fk_id_user)'+
'VALUES '+
'(CONVERT(DATE,:pdocument_date,103),:pfk_id_status,'+
':pmoney_direction,0,0,0,:pfk_id_base,:pfk_id_user)';
Parameters.ParamByName('pdocument_date').Value:=Date;
Parameters.ParamByName('pfk_id_status').Value:=p_status;
Parameters.ParamByName('pmoney_direction').Value:=p_money_direction;
Parameters.ParamByName('pfk_id_base').Value:=p_base;
Parameters.ParamByName('pfk_id_user').Value:=fMain.ApplicationVariablers.user_id;
ExecSQL;
End;
end;
错误:
SQL.Text:='INSERT INTO documents '+
'(document_date,fk_id_status,money_direction,'+
'paid,addition,saving,fk_id_base,fk_id_user)'+
'VALUES '+
'(CONVERT(DATE,:pdocument_date,103),:pfk_id_status,'+
':pmoney_direction,0,0,0,:pfk_id_base,:pfk_id_user)';
除线过程,第1907行出错:
Debuingging process, error at line 1907 :
推荐答案
我解决了此类问题
Procedure TfMain.CreateNewDocument(p_money_direction,p_id_status,p_id_base:integer);
Var
ADOTemp:TAdoQuery;
begin
ADOTemp:=TADOQuery.Create(nil);
ADOTemp.Connection:=fMain.ADOConnection;
With ADOTemp do
Begin
SQL.Clear;
SQL.Add('INSERT INTO documents');
SQL.Add('(document_date,fk_id_status,money_direction,');
SQL.Add('paid,addition,saving,fk_id_base,fk_id_user)');
SQL.Add('VALUES ');
SQL.Add('(CONVERT(DATE,GETDATE(),103),:pfk_id_status,:pmoney_direction,');
SQL.Add('0,0,0,'+IntToStr(p_id_base)+',:pfk_id_user)');
Parameters.ParamByName('pfk_id_status').Value:=p_id_status;
Parameters.ParamByName('pmoney_direction').Value:=p_money_direction;
//Parameters.ParamByName('p').Value:=p_id_base;
Parameters.ParamByName('pfk_id_user').Value:=fMain.ApplicationVariablers.user_id;
ExecSQL;
End;
end;
我删除了 Parameters.ParamByName('p')。Value:= p_id_base; 并且有效
http:// oi43 .tinypic.com / dvotxx.jpg
但这并不是很好的孤独感
But it is not good solition
这篇关于Delphi,错误:“地址xxxxxxxx的访问冲突。读取地址yyyyyyyy“,在AdoQuery.SQL.Text:='''的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文