SQL로 아래와 같이 INSERT를 하는데 중간의 VALUES값에 서브쿼리를 써서
값을 입력하려고 합니다 실행을 하면 에러는 안나는데 값이 제대로 들어가질
않습니다 실행해보면 엉뚱하게도 첫번째 값에 네번째 값인 "영업부"를 서브쿼리한 "Department_Code" 값이 들어가 있고 나머지 필드들은 전부 값이 들어가지를 않습니다
Query문 자체는 이상없이 INSERT 되는걸 확인했습니다
델파이에서 적용하려니 잘 안되네요
고수님들의 답변 부탁드립니다 ^^;;
With Query1 do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO Employees ');
SQL.Add('VALUES(');
SQL.Add('1001, ');
SQL.Add('"홍길동", ');
SQL.Add('"790208-1018289", ');
SQL.Add('(SELECT Department_Code From Department WHERE Department_Name = "영업부"), ');
SQL.Add('(SELECT Position_Class_Code From Position_Class WHERE Position_Class_Name = "대리"), ');
SQL.Add('"1997-02-15", ');
SQL.Add('2500000, ');
SQL.Add('"02-987-2928", ');
SQL.Add('"017-299-7765", ');
SQL.Add('"서울시 강남구 신사동")');
ExecSQL;
end;
쿼리문 제가 쓰는 경우를 보여드릴게요
var
with ADOQuery1 do
begin
with stringgrid1 do
begin
sql_xxx := 'update data set '
+ ' sido = ' + QuotedStr(cells[1, i]) + ' ,'
+ ' gugun = ' + QuotedStr(cells[2, i]) + ' ,'
+ ' zip_code = ' + QuotedStr(cells[6, i])
+ ' where id = ' + cells[0, i];
end;
close;
sql.Clear;
sql.add(sql_xxx);
execsql;
end;
그럼 디버그 화면에서
sql_test 에 마우스를 가져다 대면 SQL문이 나옵니다..그거 긁어가지고
SQL관리 프로그램에서 함 때려보면 다 나오죠..왜앙되는지..
머가 잘몬된건지.는 제가 확실히몰르겠으나..
근디 지금은 쿼리문이 틀린거같아요. 감으로 ^^
그럼 수고하세요