INSERT하고 실패하며, UPDATE하는 코드를 작성하려고 합니다....
근데.. 키 바이올레이션 에러가 계속나네요..
디비는 파라독스입니다... 문제가 뭔지 알려주세요!!!!!!
Try
SQL.ADD('INSERT INTO table1');
Sql.Add(' VALUES(:V1,:V2, V3, V4)');
PREPARE;
PARAMBYNAME('V1').ASSTRING := '0001';
PARAMBYNAME('V2').ASSTRING := '홍길동';
PARAMBYNAME('V3').ASSTRING := 'xxxx';
PARAMBYNAME('V4').ASSTRING := 'ZZZZ';
EXECSQL;
Except
SQL.ADD('UPDATE Y_table1');
SQL.ADD(' SET Code = :V1, Name = :V2', TEL = :V3, ADDR = :V4');
SQL.ADD(' WHERE Code = :D1 AND NAME = :D2');
PARAMBYNAME('V1').ASSTRING := '0001';
PARAMBYNAME('V2').ASSTRING := '홍길동';
PARAMBYNAME('V3').ASSTRING := 'xxxx';
PARAMBYNAME('V4').ASSTRING := 'ZZZZ';
PARAMBYNAME('D1').ASSTRING := '0001';
PARAMBYNAME('D2').ASSTRING := '홍길동';
EXESQL;
END;
SQL.close; <=====추가
SQL.clear; <=====추가
> SQL.ADD('INSERT INTO table1');
> Sql.Add(' VALUES(:V1,:V2, V3, V4)');
> PARAMBYNAME('V1').ASSTRING := '0001';
> PARAMBYNAME('V2').ASSTRING := '홍길동';
> PARAMBYNAME('V3').ASSTRING := 'xxxx';
> PARAMBYNAME('V4').ASSTRING := 'ZZZZ';
> EXECSQL;
> Except
SQL.close; <=====추가
SQL.clear; <=====추가
> SQL.ADD('UPDATE Y_table1');
> SQL.ADD(' SET Code = :V1, Name = :V2', TEL = :V3, ADDR = :V4');
위 구문에는 키값이 없겠죠?
> SQL.ADD(' WHERE Code = :D1 AND NAME = :D2'); <====키값이겠죠?
PARAMBYNAME('D1').ASSTRING := '0001'; <====키값이겠죠? 앞에 놓으세요
> PARAMBYNAME('D2').ASSTRING := '홍길동'; <====키값이겠죠? 앞에 놓으세요
> PARAMBYNAME('V1').ASSTRING := '0001';
> PARAMBYNAME('V2').ASSTRING := '홍길동';
> PARAMBYNAME('V3').ASSTRING := 'xxxx';
> PARAMBYNAME('V4').ASSTRING := 'ZZZZ';
> EXESQL;
> END;
>
>