小编use*_*668的帖子

为什么小的更改会在此delphi代码上出现"地址xxx处的访问冲突"错误?

我有2段代码:

  1. 它工作正常

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;
Run Code Online (Sandbox Code Playgroud)
  1. 它不起作用并返回一个可怕的错误

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,:p,: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;
Run Code Online (Sandbox Code Playgroud)

图像错误,第1917行

在此输入图像描述

t-sql delphi access-violation

-1
推荐指数
1
解决办法
1043
查看次数

标签 统计

access-violation ×1

delphi ×1

t-sql ×1