모르는게 넘 많아서 ..--; 의지할 곳은 여기뿐이네요..
제가 지금 쓰는 DB는 MS-SQL 7.0이고요
insert into temp (컬럼명...) value (값...);
할때 value부분에( :col1,:col2..) 모 이런식으로 코딩을
하더라고요..
그리고 나서
query.paramByName('col1').AsString := 'aaa';
모이런식으로 코딩을 하던데.. 흉내를 내서
해봤더니 paramByName('col1')이게 잘못된 컬럼이라나.. 그러면서 에러만
납니다. 당근 insert도 안돼고요.
기초 지식이 부족해서 이게 몬지 잘 모르겠어요.
그리고 쿼리를 이용할때 보면 위처럼 하고나서
query.add해서 쿼리문 에드하고. query.execsql (정확히 생각이 안나는데요)
이렇게 쿼리 실행하는것 같은데. 마지막에 commit까지 해줘야 하는건가요..
읽고있으니 답답하시죠..? 저두 답답합니다.
거의 하루종일 컴앞에서 고민하고 또 고민하고 있답니다.
그런데 실력은 좀처럼 늘지가 않아요.
몬가 시작하면 전에 하던게 가물하고 전에 하던걸 다시하면 앞에 하던게 다시 가물거리고
쩝 .. 고수가 되는 길은 멀고도 험하군요..
어쨌든 간단하 예제를 올려 드리죠..
그리고, MS-SQL 서버 버젼에서는
세그먼트 관리를 하시는게 좋을듯합니다..
아니.. 무조건 하시는게 좋을 듯..
Database1.StartTransaction; //세그먼트 관리
With Query1 Do
Begin
Close;
With SQL Do
Begin
Clear;
Add(' INSERT INTO TEMP ');
Add(' (CODE, NAME ');
Add(' VALUES ');
Add(' (:PRM_CODE, :PRM_NAME) ');
End;
ParamByName('PRM_CODE').AsString := '100';
ParamByName('PRM_ANME').AsString := '회계코드';
Try
ExecSQL;
Except
Database1.RollBack;
ShowMessage('INSERT 실패');
End;
End;
Database.Commit;
답이 되셨을런지..
(Param에 "PRM_"를 붙인 이유는 혹시나 예약어와 충돌할 수 있는
경우를 없애기 위해서입니다.)