Q&A

  • 팩킹했는데... 에러가 나네요 봐주세요(소스)
이곳저것에서 돌아다니며 배운걸로 만들었거든여...
근데... 잘 안되네요...
폼실행은 되는데...
버튼을 누르면... 에러가 뜨거든여...
디비파일(물리)까지는 접근이 되는것 같은데...
프로세스 머라머라 에러나와여 --;(영어가 안되서리..)
유저명 나오고여
디비경로명 나오고여
그러면서 에러 나오네여

에러 메시지
Project Project2.exe raised exception class EDBEngineError with message 'Table is busy.
Table:CVIDIOSHOPVI.DB
User:kkk'.Process stopped, Use Step or Run to continue.
이런 에러 메시지 뜨거든여....




unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, DBCtrls, Grids, DBGrids, Db, DBTables,bde, StdCtrls;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    Table1: TTable;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure ParadoxPack(Table : TTable);
var
TBDesc : CRTblDesc;
hDb: hDbiDb;
TablePath: array[0..dbiMaxPathLen] of char;
begin
FillChar(TBDesc,Sizeof(TBDesc),0);
with TBDesc do begin
StrPCopy(szTblName,Table.TableName);
StrPCopy(szTblType,szParadox);
bPack := True;
end;
Table.Open;
hDb := nil;
Check(DbiGetDirectory(Table.DBHandle, True, TablePath));
Table.Close;
Check(DbiOpenDatabase(nil, 'STANDARD', dbiReadWrite,
dbiOpenExcl,nil,0, nil, nil, hDb));
Check(DbiSetDirectory(hDb, TablePath));
Check(DBIDoRestructure(hDb,1,@TBDesc,nil,nil,nil,False));
Table.Open;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//packtable(table1);
//DBIPackTable(Table1.DBHandle,Table1.Handle,nil,nil,True);
ParadoxPack(table1);
end;

end.

그리구여 팩킹하면 물리적으로 디비 파일 크기가 변한다고 알고 있는데여
정말 변하나여?
확장자가 db인 파일의 크기가 변하는거에여?

좋은 하루 되시고 답변 부탁드립니다.
2  COMMENTS
  • Profile
    김경록 2002.05.14 19:16
    에러메세지는여..
    해당 테이블이 열려 있다는 뜻입니다..
    테이블명은 Table:CVIDIOSHOPVI.DB입니다..
    해당 table의 내용을 닫은후 실행해 보시는게 어떨지..
    그리고,
    Pack하는것은 실제로 줄어들지 안 줄어들지 미지수입니다.
    줄어드는 경우는 삭제된 내용이 이전에
    있었을때에..
    파라독스는 삭제한 data를 지우지 않고,
    Marking만 해두는 방식을 취합니다..
    따라서.. 아무리 삭제를 해도.. 사이즈는 줄지 않는다는 뜻이져..
    그래서.. Pack이라는걸 해주는데..
    삭제된.. 그러니까 Marking된 내용을 진짜로 지운다고나 할까여..
    그래서, 사이즈가 준다는 뜻입니다...
    이해가 되셨을런지..
    만약 삭제된 내용이 없다면... 줄지 않겠쪄?
    Pack도 되기는하지만..
    에러가 간혹발생할때가 있는데..
    그러면 복구가 되지 않습니다..
    아주 조심하셔야 할듯..
    만약.. Pack을 신용치 못하겠다면..
    Temp Table을 만드시구여..
    그곳에 모두 복사하구(Insert하구)..
    Pack할 Table 지우고,
    Pack할 Table 만들고, Temp Table에 있는
    Data를 다시.. Pack할 Table에 밀어 넣으면 될겁니다..
    확실한 방법이져..
    약간의 코딩이 있겠지만..




  • Profile
    김종균 2002.05.14 20:50
    해당 테이블의 내용을 어떻게 닫아야 하는지 모르겠거든여
    아시는 분 알려주세요...
    즐거운 하루 보내세요..

    • 권영덕
    • 2002.05.14 20:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 전수욱
      2002.05.14 22:27
      NeedData함수를 이용하세요.자세한것은 샘플에 있을 것입니다. procedure TPrnChr1Form.QuickRep1Before...
    • 황선희
      2002.10.19 00:31
      6라인은 고정적으로 출력할 건데여. 그런데 만약 두 라인은 데이타가 있고 나머진 없이 나와야 된다면 ...
    • 이정규
    • 2002.05.14 20:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박재용
      2002.05.14 20:46
      보통은 해당 코딩중에는 밴드위에 존재하는것처럼 보이지만.. 사실은 밴드아래에 존재하기 때문에 그런경...
    • 박동희
    • 2002.05.14 19:47
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 전수욱
      2002.05.14 22:30
      자세한것을 잘모르겠지만 아마도 파라독스는 1인용으로 알고 있습니다. 여러군데서 접속시 에러가 발생합...
    • 김경록
      2002.05.15 18:59
      파라독스도 멀티용으로 사용할 수 있겠지만.. 많은 문제 요소가 나타납니다.. 게시판 어디에선가.. 멀티...
    • 김재환
    • 2002.05.14 19:37
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이경규
      2002.05.14 19:43
      Tag 속성을 사용해 보십시오... 일반적으로 Tag 속성에 비베에서 사용하던 컨트롤 배열의 기능을 이용하...
    • 김재환
      2002.05.14 19:52
      감사합니다... 즐거운하루 되세요
    • 류영민
    • 2002.05.14 19:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이경규
      2002.05.14 19:46
      유닛 소스에서 Button3Click 메소드를 찾을 수 없다고 하네요 End 문장이 없던가... 소스의 끝에 End. 문...
    • 이경규
    • 2002.05.14 19:32
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이경규
      2002.05.14 20:03
      죄송합니다.^^ 급한마음에 글만 먼저 올려버려서리^^ 검색해보니 많은 분들의 답변이 절 기다리고 있더...
    • 박재용
      2002.05.14 20:00
      폰트의 규격이 달라서입니다.. 메인폼에서 폰트의 Charest  = DEFAULT_CHARSET 로 바꿔주세요.....
    • 김태용
    • 2002.05.14 19:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 민준기
      2005.10.06 03:42
      uses shellapi; function  ShellFileOp(OpMode: UInt; Src: string; Dest: string): Boolean;...
    • 나옹이
    • 2002.05.14 18:52
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 박재용
      2002.05.14 20:04
      첨 ActiveX를 접할때는 좀 뭐같습니다.. 방법도 잘모르고,...ㅠㅠ 책자도 짜달시리 제대로 나와있는것도 ...
    • 최석기
      2002.05.14 19:31
      ActiveX를 불러오는 Html에서 버젼 체크 부분이 현 ActiveX의 버젼과 맞지 않는거 같군요.
    • 나옹이
      2002.05.14 19:50
      ActiveX 의 버전이란게 어디 있지요? OCX 를 말하는 거여요?
    • hello
      2002.05.14 21:40
      project-> options..로 가시면 버전관리를 할 수 있거덩요.. 그러면 그 버전 번호가 ocx만들때 생긴 *....
    • 이재철
    • 2002.05.14 16:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 백록화
      2002.05.14 18:45
      yo` 안녕하세요!! 백록화 입니다. :) 치완을 해야 합니다. 줄바꿈 (rn)을 <br> 태그로 바꿔줘...
    • 김종균
    • 2002.05.14 11:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.05.14 19:16
      에러메세지는여.. 해당 테이블이 열려 있다는 뜻입니다.. 테이블명은 Table:CVIDIOSHOPVI.DB입니다.. 해...
    • 김종균
      2002.05.14 20:50
      해당 테이블의 내용을 어떻게 닫아야 하는지 모르겠거든여 아시는 분 알려주세요... 즐거운 하루 보내세...
    • 박연준
    • 2002.05.14 09:04
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2002.05.14 19:05
      음... 이건 책봐도 나올문제 같은데.. 어쨌든 간단하 예제를 올려 드리죠.. 그리고, MS-SQL 서버 버젼에...
    • 박재용
      2002.05.14 18:53
      Col1의 변수값을 다른 이름으로 바꿔보세요... !! 그리고... 쿼리의 기본적인 사용방법을 제가 올려 드리...
    • 박연준
      2002.05.14 19:15
      알고보니 쿼리 컨포넌트의 파람 체크가 false로 되어있더군요 true 고쳐주고 위에 처럼 하니까 바로 ...
    • 신동묵
      2002.05.14 09:02
      제 생각엔요... StrToFloat 함수를 쓰시면 될 것 같은데요... 음... 그러니까... StrToFloat(edit1.text...
    • 김률권
    • 2002.05.14 07:58
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 박재용
      2002.05.14 18:43
      델파이 기초책을 우선 마스터 하세요... 오브젝트파스칼은 컴퓨터언어에 기본만 되어있다면 엄청.. -,.-쉽...
    • 김경록
      2002.05.14 08:40
      모든 프로그램 언어에서는 거의 사용치 않는 기능들이 있습니다.. 단연.. 어떤 업종이냐에 따라서.. 어떤...
    • 김률권
      2002.05.14 09:01
      저는 인터넷 쪽으로 해야 할거 같네요. 어떤식으로 해야 할지 아직 갈피는 못잡았지만,열씨미 노력하겠습...
    • 신동묵
      2002.05.14 08:20
      글쌔요?! 저두 델파이 시작한지 1년반 정도 밖에 되지 않아서 뭐라고 권해드려야 할지 모르겠네요. 제가 ...
    • 김률권
      2002.05.14 08:32
      확실히 맹목적으로 배우려는 의지만 가지고는 힘들것 같군요.말씀대로 책을 구해서 공부를 해야 겠군요 ㅎ_...
    • 우소
    • 2002.05.14 07:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박상윤
      2002.05.21 07:56
      가능합니다.... 대신 순수 도스에서는 안되겠지여.. 그렇게 하시려면.... 모든 것을 손수 구현하셔야 합...
    • 정찬희
      2002.05.14 11:18
      김상형씨가 쓴 <델파이 4.0 정복> 이요... 따른 책 보지 마세요...헛 수고 입니다... 제가 요즘에 ...
    • ywryu
    • 2002.05.14 04:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박재용
      2002.05.14 19:05
      우선 방법을 바꿔보시죠... 쿼리를 이용하여 데이타를 가져오실때... Order By 성명,금액 으로 불러오신...
    • 정성훈
    • 2002.05.14 04:07
    • 0 COMMENTS
    • /
    • 0 LIKES