Q&A

  • 저장 관련
procedure TForm1.btn_saveClick(Sender: TObject);
begin
    with Query1, SQL do begin
      Close;
      Clear;
      Add(' SELECT * FROM emp WHERE empno = :empno');
      ParamByName('empno').AsString := Edit_empno.Text;
      Open;

      if RecordCount > 0 then
      begin
        Clear;
        Add(' UPDATE emp ');
        Add(' SET   empno = :empno, ename = :ename ');
        Add(' WHERE empno = :empno ');
      end
      else
      begin
        Clear;
        Add(' INSERT INTO emp(ename, empno) ');
        Add(' VALUES (:empno, :ename)');
      end;

      ParamByName('empno').AsString := Edit_empno.Text;
      ParamByName('ename').AsString := Edit_ename.Text;

      ExecSQL;
      Close;
      Open;
      Clear;
    end; // with
end;

////////////////////////////

error creating cursor handle 이란 에러 메시지가 뜨는데.. 뭐가 잘못된건지
모르겠습니다.
2  COMMENTS
  • Profile
    바다를향해 2002.07.18 12:13
      var
         MyRecordCount: Integer; <--- 레코드 카운트 담을 변수

            MyRecordCount := RecordCount;
            Close;

            if MyRecordCount > 0 then
    //      Close;

    요표시 ">" 가 없는 부분만 수정 했는데.....이렇게 함 해보세요....
    결론은 ExecSQL 하기전에 Close 상태에서 해야 하는데...그렇지 않아서
    그런겁니다...
    그럼....즐건 하루...^^;;
  • Profile
    머슴 2002.07.18 00:10
          ExecSQL;
          Close;
          Open;  <= 요부분때문에 그런데요...
          Clear;

         insert.update,delete를 ExecSQL문으로 날린경우에는

        Open를 할 필요가 없습니다...