200分求答案 ( 积分: 200 )

  • 主题发起人 主题发起人 lfzr
  • 开始时间 开始时间
L

lfzr

Unregistered / Unconfirmed
GUEST, unregistred user!
SQL.Clear;
SQL.Add('UPDATE FI01PIN' );
SQL.Add('set I_BJ="1"');
SQL.Add('WHERE ISNULL(I_BOXNO,'') IN ');
SQL.Add('(SELECT ISNULL(H_BOXNO,'') FROM FH01PIN01) ');
ExecSQL;
这一段我在查询分析器里执行OK了,为什么放进ADO里就不行了呢?
 
注意单引号和空格的问题
 
set I_BJ="1"
这里,你需要先把双引号开关打开,
一般使用
'set i_BJ = ' + quotedstr('1')
 
SQL.Add('WHERE ISNULL(I_BOXNO,'''') IN ');
SQL.Add('(SELECT ISNULL(H_BOXNO,'''') FROM FH01PIN01) ');
 
看看是不是你的空格掉了?
SQL.Clear;
SQL.Add('UPDATE FI01PIN' );
SQL.Add('set I_BJ="1"');
SQL.Add('[red]_[/red]WHERE ISNULL(I_BOXNO,'') IN ');
SQL.Add('[red]_[/red](SELECT ISNULL(H_BOXNO,'') FROM FH01PIN01) ');
ExecSQL;
 
SQL.Clear;
SQL.Add('UPDATE FI01PIN' );
SQL.Add(' set I_BJ="1"');
SQL.Add(' WHERE ISNULL(I_BOXNO,'''') IN ');
SQL.Add(' (SELECT ISNULL(H_BOXNO,'''') FROM FH01PIN01) ');
ExecSQL;
 
帮你顶,接个分
 
看出来了,厉害,散分了
 
双引号开关
SET QUOTED_IDENTIFIER ON/OFF
 
SQL.Add('UPDATE FI01PIN set I_BJ='''1''' WHERE ISNULL(I_BOXNO,0) IN (SELECT ISNULL(H_BOXNO,0) FROM FH01PIN01') ;
 
SQL.Clear;
SQL.Add('UPDATE FI01PIN' );
SQL.Add('set I_BJ=''1'''');
SQL.Add('WHERE ISNULL(I_BOXNO,'''') IN ');
SQL.Add('(SELECT ISNULL(H_BOXNO,'''') FROM FH01PIN01) ');
ExecSQL;
 
后退
顶部