Q&A

  • SQL에서 수정하는법좀 알으켜주십시오[소스있슴]
소스는 아래와 같습니다.
그런데 이렇게해서 수정을 해도 데이터가 수정이되지를 않고 SQL과 연결된  DBGrid에도 아무런 변화가 없습니다.

SQL은 초보라서 도무지...

고수님들의 상세한 답변 부탁드립니다.


  with form1.memberSQLQuery do
  begin
   close;
   Sql.Clear;


    SQL.Add( 'Update member.DB' );
    SQL.Add(' Set Name=:Name,Jumin=:Jumin,Age=:Age,Sex=:Sex,AddYear=:AddYear,Jong_A=:Jong_A,Jong_B=:Jong_B,Tel=:Tel,Handphon=:HandPhon,Juso=:Juso,Memo=:Memo');
    SQL.Add(' WHERE Jumin = Trim(Form1.MemJuminEdit) ');

    ParamByname('Name').AsString := Form1.MemNameEdit.Text;
    ParamByname('Jumin').AsString := Form1.MemJuminEdit.Text;
    ParamByname('Age').AsString := Form1.MemAgeEdit.Text;
    ParamByname('Sex').AsString := Form1.MemSexEdit.Text;
    ParamByname('AddYear').AsString := Form1.MemYearEdit.Text;
    ParamByname('Jong_A').AsString := Form1.MemUpEdit.Text;
    ParamByname('Jong_B').AsString := Form1.MemJikEdit.Text;
    ParamByname('Tel').AsString := Form1.MemTelEdit.Text;
    ParamByname('HandPhon').AsString := Form1.MemHandEdit.Text;
    ParamByname('Juso').AsString := Form1.MemJusoEdit.Text;
    ParamByname('Memo').AsString := Form1.MemMemoEdit.Text;

    ExecSql;

  end;




2  COMMENTS
  • Profile
    배건환 2002.01.24 20:02
    이렇게 하면 자꾸 복잡해지기 때문에 저는 String변수를 하나 만들어 이용합니다.

    seq: String
    이런 식으로 하여
    with form1.memberSQLQuery do

    seq := 'Update member.DB ' +
         ' Set Name= ' + Format('''%s''',[Form1.MemNameEdit.Text]) +
          '     Jumin= ' +Format('''%s''',[Form1.MemJuminEdit.Text])
          ....
         ' WHERE Jumin = ' +Trim(Form1.MemJuminEdit.Text;

        Sql.Add(seq);
        ExecSql;
        Select; ====>procedure 처리나 function처리
    end;        

    그리고, 이 작업전에...다시 Select 하는 프로시저를 하나만들어 실행시키면
    될것입니다.
    procedre Select;
    var
    seq:String;
    begin
    form1.memberSQLQuery.Close;
    form1.memberSQLQuery.Sql.Clear;


    with form1.memberSQLQuery do
        seq := 'Select * from member.DB ';
        Sql.Add(seq);
        ExecSql;
    end;
    form1.memberSQLQuery.Open;

    end;

    그럼 즐코하세요



  • Profile
    하얀까마귀 2002.01.24 06:35
    안녕하세요 하얀까마귀 입니다.

    데이타베이스에서 Select 한 데이타는 연결되어 있는것이 아닙니다.

    Select 해서 불러오면 그걸로 끝이죠.. 불러온 이후에 수정또는 삭제등의

    작업에 대해서 Select 된 결과에 반영되지 않습니다.

    다시 불러와야 되죠..

    update 문을 날렸으니 데이타베이스는 변경이 되었지만 그 내용을 클라이언트는 알수 없습니다.

    Select문을 다시 불러와서 보면 수정되어 있을껍니다.

    그렇다고 한건한건 수정될때마다 불러오는것도 좀 그렇죠?

    그래서 UpdateSQL같은것을 사용하긴 합니다. 개인적으론 별로 안좋아합니다.

    그럼 즐거운시간 되세요.

    - 하얀까마귀 -