Q&A

  • sql문 질문이여~~
요렇게 코딩을 했는데 제너럴 SQL에러가 나네요(문자가 부적합합니다)

고수님덜 부탁드립니다.



I := 0;

sqlcmd1 := 'update Proc_management set Start_flag = ''N'' ';

if sw_area <> 'ALL' then

begin

sqlcmd1 := sqlcmd1 + 'WHERE switch_area like '''+ sw_area +'%'' ';

I := 1;

end;

if sw_ID <> 'ALL' then

begin

if I = 0 then

begin

sqlcmd1 := sqlcmd1 + 'WHERE pg_type like '''+ prog_type +'%'' ';

I := 1;

end;

sqlcmd1 := sqlcmd1 + 'AND switch_id like '''+ sw_ID +'%'' ';

end;



if prog_type <> 'ALL' then

begin

if I = 0 then sqlcmd1 := sqlcmd1 + 'WHERE pg_type like '''+ pg_type+'%''';

sqlcmd1 := sqlcmd1 + 'AND pg_type like '''+ prog_type +'%''';

end;

sqlcmd1 := sqlcmd1 + ';';

with query1 do

begin

SQL.Clear;

DatabaseName := 'CDR2001';

SQL.Add(sqlcmd1);

showmessage(sqlcmd1);

query1.ExecSQL;

end;



1  COMMENTS
  • Profile
    최성진 2001.11.13 02:08


    I := 0;

    sqlcmd1 := 'update Proc_management set Start_flag = ''N'' ';

    if sw_area <> 'ALL' then

    begin

    sqlcmd1 := sqlcmd1 + 'WHERE switch_area like '''+ sw_area +'%'' ';

    I := 1;

    end;

    if sw_ID <> 'ALL' then

    begin

    if I = 0 then

    begin

    sqlcmd1 := sqlcmd1 + 'WHERE pg_type like '''+ prog_type +'%'' ';

    I := 1;

    end;

    sqlcmd1 := sqlcmd1 + 'AND switch_id like '''+ sw_ID +'%'' ';

    end;



    if prog_type <> 'ALL' then

    begin

    if I = 0 then sqlcmd1 := sqlcmd1 + 'WHERE pg_type like '''+ pg_type+'%''';



    sqlcmd1 := sqlcmd1 + 'AND pg_type like '''+ prog_type +'%''';

    end;

    sqlcmd1 := sqlcmd1 + ';'; <--- 이부분은 필요없을듯...

    with query1 do

    begin

    DatabaseName := 'CDR2001';

    close <--- 추가해주시면 좋죠.. ^^

    SQL.Clear;

    SQL.Add(sqlcmd1);

    showmessage(sqlcmd1);

    ExecSQL;

    end;