Q&A

  • Query 질문이요
  Query1.SQL.Clear;
  Query1.SQL.Add('update table1 set field1 =' + IntToStr(UpDown1.Position) + ' where field2=5');
  Query1.Open;  
try
   // Query1.ExecSQL;
    Query1.Close;
  except
    showmessage('자료 저장에 실패 했습니다.');
  end;

위와 같이 하면 에러가 나는데 어떻게 쿼리를 이용해야 하는지 좀 가르쳐 주세요
자세히 가르쳐 주셔야 이해를 할 수 있거든요.^^ (소스로 설명해 주시는게 ......)
2  COMMENTS
  • Profile
    김병윤 2003.03.18 12:18

    제가 쓰는 쿼리사용 ^^;;
    With Query1 Do
    Begin
      Close;

      DataBaseName := '데이터베이스 이름이 드가야겠죠? ^^';
      // Query1에 이미 데이터베이스 이름이 들어가 있다면 안쓰셔도 되고요

      SQL.Clear;
      SQL.Add(' UPDATE TABLE1 SET Field1 = ' + IntToStr(Updown.Position)
                 + '   WHERE Field2 = 5');
      Try
        ExecSQL;
      Except
        ShowMessage('실패하면 안대는데...^^;');
      End;
    End;

    제가 볼때는 에러날 이유가 보이지 않네요...^^;;

    에러내용이 뭔지 보면 좋겠는데...ㅡㅡㅋ

    추측하기에는 Field1 = ' + IntToStr(Updown.Position) + '

    이부분이 잘못된 것이 아닐지...Field1 값이 String 값이라면

    Field1 = ''' + IntToStr(Updown.Position) + '''

    이런식으로 변경하셔야 할 듯 하네요 ^^
  • Profile
    LuckyBoy 2003.03.18 20:42
    제가 알기로는 Open은 DataSet을 Open 하는 의미거든요..
    그러니까.. Insert, Update, Delete문에는 사용할 수 가 없는 것 같구요..
    Select 문인경우 Open을 사용하고..
    Insert, Update, Delete문 같은경우 ExecSQL을 사용하시는 것이 맞는것 같네요..
    아마도 이러한 문제로 애러가 발생한 것 같군요..

    그럼 즐프하세요..