Q&A

  • SQL로 INSERT시 좀 봐주세요 부탁드려요 ^^;;
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;
2  COMMENTS
  • Profile
    바보감자 2003.06.12 03:34
    안녕하세요 언제나 초보 바보감자입니다
    쿼리문 제가 쓰는 경우를 보여드릴게요

    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관리 프로그램에서 함 때려보면 다 나오죠..왜앙되는지..
    머가 잘몬된건지.는 제가 확실히몰르겠으나..
    근디 지금은 쿼리문이 틀린거같아요. 감으로 ^^
    그럼 수고하세요


  • Profile
    박준철 2003.06.12 02:12
    ''홍길동'' 이렇게 써야 하는거 아닌가요 ?
    그리고 죄송스럼 질문인데 줄문 맞추어 코딩하는
    습관을 들이세요 남들이 보기 힘들잖아요
          Close;
          SQL.Clear;
          SQL.Add(' Insert Into Employees               ');
          SQL.Add(' Values(   ''홍길동''         ,         ');
          SQL.Add('               ''영업부''         ,         ');
    위와 같이 코딩하는것이 훤씬 낳을듯 한거 같은데
    코딩을 너무 알아볼수가 없네요