Q&A

  • 아래의 에러 메시지..
먼저 답변해 주셔셔 고맙습니다.

에러 메시지를 보면 아래와 같습니다.
[Microsoft][ODBC SQL Server Driver][SQL Server]이름 'edtId'은(는) 이 컨텍스트에서 사용할 수 없습니다. 여기서는 상수, 식, 변수? 사용할 수 있고 열 이름은 사용할 수 없습니다.

라고 나옵니다.
각각의 필드속성은 varchar로 하였습니다.크기는 50정도로 하였으며..
위의 edtId는 입력되는 데이터입니다..
Table을 이용했을때는 입력이 되었으므로 Demo1 테이블은 존재합니다.

한번더 답변 부탁합니다..
------------------------------------------

안녕하세요..
SQL문으로 MS-SQL에 데이터를 입력하려 합니다.
아래와 같은 구문을 사용하였습니다.

   qry.SQL.Clear;
   qry.SQL.Add('insert into Demo1 (ID,Jibun1,Jibun2,Dong) values("'+edtId.Text+'","'+edtJibun1.Text+'","'+edtJibun2.Text+'","'+edtDong.Text+'")');
   qry.ExecSQL;

위의 구문을 로컬용으로 Paradox를 이용하여 DB를 만을었을 경우에는 에러가 발생하지 않으나 MS-SQL에 사용하였을때는 에러가 발생하네요..

구문이 틀린것인지 제가 잘못사용한것인지 모르겠네요..
참고로 Query를 사용하여 않고 Table을 이용하였을 경우에는 입력이 되네요..

답변 부탁합니다..
----------------------------------------------
3  COMMENTS
  • Profile
    송영석 2002.02.03 12:49


    쿼리 분석기에서 돌려본 결과 님이 쌍따옴표를 사용한게 문제가 되는군요... ㅋㅋㅋ

    "' <- 이거 대신 '''' + edtld.text + '''', 이런식으로 전부 변환해주셔야 될거 같네염... ㅡ.ㅡ

    그리고 값을 직적입력하는 것은 많은 혼란을 가져오니 유지보수를 위해서도

    다음과 같이 파라미터를 사용해서 입력하도록 해보세요...

    예) TADOQuery를 사용한 경우, TQuery를 사용한 경우에는 파라미터 값을 주는 방법이 다를 겁니다. 찾아보세여... ^^

    with ADOQuery1 do begin
        Close;
        with SQL do begin
            Clear;
            Add('INSERT INTO DEMO1(ID, JIBUN1, JIBUN2, DONG)');
            Add('                    VALUES(:pID, :pJIBUN1, :pJIBUN2, :pDONG)');

            Parameters.ParamByName('pID').Value := edtId.Text;
            Parameters.ParamByName('pJIBUN1').Value := edtJibun1.Text
            Parameters.ParamByName('pJIBUN2').Value := edtJibun2.Text
            Parameters.ParamByName('pDONG').Value := edtDong.Text      
        end;
        ExecSQL;
    end;
  • Profile
    장명선 2002.02.02 21:58
    코딩을 변경해보세요

    a.SQL.Clear;
    a.SQL.Add(' insert into Demo1 (a, b, c, d) ');
    a.SQL.Add(' values ');
    a.SQL.Add(' (:a, :b, :c, :d) ');
    a.ParamByName('a').AsString := edtId.Text;
    a.ParamByName('b').AsString := edtJibun1.Text;
    ... 생략
    a.ExecSQL;

    이렇게 하면 되지 않을까여 ?

    그럼 즐코하세요



  • Profile
    gudwhrla 2002.02.02 21:56
    Query Analyzer 니 Sql Explorer 등을 이용해서

    Insert Query 문을 직접 실행해 보세요

    이상이 없으면 델파이 쪽 문제이고 있으면

    MS-Sql 문제 겠죠



    • 피라니
    • 2002.02.03 04:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이경문
      2002.02.05 12:00
      잘은 모르겠지만 class인 만큼 parent의 constructor을 호출해 줘야 되지 않을까요? 델파이는 원래 명시적...
    • 노명환
    • 2002.02.03 02:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 데빠이
      2002.02.03 12:38
      ActionManager 컴폰이 Additional 페이지탭에 끝에서... 몇번째게여? ㅋㅋㅋ 끝에서 4번째에 고스란히 앉...
    • 한상원
    • 2002.02.03 01:23
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 머슴
      2002.02.03 02:55
        간단하게 짠다면 이렇게 한번 해보세요.....      OnDblClick 이...
    • gudwhrla
      2002.02.03 01:07
      procedure TForm1.DBGrid1DblClick(Sender: TObject); begin    Edit1.Text := Query1.FieldBy...
    • 강동현
    • 2002.02.02 23:07
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 머슴
      2002.02.03 03:05
        "'+edtId.Text+'" 에서 " 가 아니라 ' 이네요...   파라미터로...
    • 공성환
      2002.02.03 02:06
      showmessage(qry.SQl.Text); 를 해보세요... ' 로 되어야 될것같은데...  " 로 되어서 보...
    • 신주호
    • 2002.02.02 22:02
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 서영택
      2002.02.04 14:21
      현재날짜를 표현하는거라면 edit3.Text := DateToStr(Now); or edit3.Text := DateToStr(Date); 즐거...
    • 신주호
      2002.02.03 00:24
      답변해 주셔서 감사합니다. 그런데 그냥 함수로 하고 싶은데요.. 어떻게 하죠? 분명 inttostr, strtoint...
    • gudwhrla
      2002.02.03 01:04
         Edit3.text := FormatDateTime('yyyy"년 "mm"월 "dd"일"',Enc...
    • anderson
      2002.02.02 22:32
      TDateTimePicker를 쓰시죠?
    • 강동현
    • 2002.02.02 21:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 송영석
      2002.02.03 12:49
      쿼리 분석기에서 돌려본 결과 님이 쌍따옴표를 사용한게 문제가 되는군요... ㅋㅋㅋ "' <- ...
    • 장명선
      2002.02.02 21:58
      코딩을 변경해보세요 a.SQL.Clear; a.SQL.Add(' insert into Demo1 (a, b, c, d) '); a.SQL.Add(' val...
    • gudwhrla
      2002.02.02 21:56
      Query Analyzer 니 Sql Explorer 등을 이용해서 Insert Query 문을 직접 실행해 보세요 이상이 없으...
    • 수야.
    • 2002.02.02 21:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 머슴
      2002.02.02 23:06
      DBLookComboBox 가 제대로 연결을 해주었는데... 안보이는 이유는 DB가 연결이 안되었기 때문이 입...
    • 강동현
    • 2002.02.02 21:07
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 함도
      2002.02.03 21:31
    • 송영석
      2002.02.03 12:33
      SQL 구문 자체는 문제가 없는거 같지만... 혹시 ID <-- 이 필드가 Integer 형이 아닐까 하는 생각이 ...
    • 사발우성
      2002.02.02 21:25
    • 돌멩이
      2002.02.02 21:16
      에러 메세지를 함께 보내 주시면 더나은 답변이 된듯 합니다. Delmo1이라는 테이블이 존재 하는지 보세...
    • 한상훈
    • 2002.02.02 15:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강륜종
      2002.02.02 18:28
      라디오그룹의 오브젝트 인스펙터를 보시면 Columns 라는게 보일겁니다 그걸 조정해 보세요
    • 임현창
    • 2002.02.02 11:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Tk
      2002.02.02 23:28
      페이지 버퍼를 올려 보세요. http://www.delphi.or.kr/dwp/ibbench/ibbench.htm 여기 함보세요.
    • 주원진
    • 2002.02.02 09:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2002.02.02 17:00
      폴더열기... procedure TForm1.Button1Click(Sender: TObject); begin ShellExecute(    ...
    • 강륜종
    • 2002.02.02 06:06
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 초보껄떡이
      2002.02.02 19:17
      Query 를 보면 In-line View를 두 개 쓰셨는데 둘 사이에 콤마가 빠져있습니다. 그것때문에 아래와 같은 ...
    • 장명선
      2002.02.02 07:23
      코딩에는 문제가 없는데 오라클 SQL을 제가 잘 모르지만 대충 맞는것 같네요 제일 밑에 있는 Active를 하...
    • 강륜종
      2002.02.02 07:45
      Open으로 해도 안되는데여...
    • 나두초보!!
      2002.02.02 09:27
      아래 글을 봐서는 말 그대로.. db의 필드와 파라미터 값의 데이터 형식이 같지 않다는 말 같은데여.. ...
    • 강륜종
    • 2002.02.02 04:12
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 송영석
      2002.02.04 03:23
      ADOQuery.FieldByName('필드명').AsString 구문을 그대로 사용할 수 있습니다. 그럼 즐프
    • 장명선
      2002.02.02 04:21
      일반 Query 나 ADOQuery 의 사용법은 거의 동일합니다. 모르는 명령어는 도움말을 찾아보세요 그럼 즐...
    • 수야.
    • 2002.02.02 03:58
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 장명선
      2002.02.02 04:02
      DBListBox 보다는 DBLookUpListBox를 사용해보세요 그럼 즐코하세요
    • 수야.
      2002.02.02 05:01
      답변 너무고맙습니다. LookUpListBox를 쓰니 바로 나오는군요.. 참.. 컨트롤두 잘 알고 써야되겠네요.......
    • 장명선
      2002.02.02 05:25
      잘 되셨다니 저두 기쁘네요 Table에서 검색을 할때 Find라는것이 있습니다 그걸 사용해보시면 더 편리 할...
    • 신호
    • 2002.02.02 02:46
    • 3 COMMENTS
    • /
    • 0 LIKES
    • gudwhrla
      2002.02.02 21:00
      1.프로젝트에서 바로  더블클릭이벤트 추가하여 사용하기 unit Unit1; interface uses &...
    • 서정길
      2002.02.06 20:40
      안녕하세요 지나가다 우연히 보게 됐습니다 좋은거 알았네요 그런데 궁금한게... protected 로...
    • 신호
      2002.02.04 07:57
      감사합니다.정말감사합니다. 초보가 힘이납니다.
    • 이준희
      2002.02.02 18:56
      ^Space 해서 안나오면  소스 파일을 보고 멤버를 체크해서 보시는 방법밖에 없죠... &nbs...
    • 서별
    • 2002.02.02 02:13
    • 0 COMMENTS
    • /
    • 0 LIKES