C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[28438] 진짜 욕나온다. 이거 왜이런지 아시나요?(해결은 됐는데...)
무식장이 [] 913 읽음    2004-01-08 12:19
무식장이 님이 쓰신 글 :
이거 땜시 3일째 헤매고 있습니다.
근데 허무하게 해결되었네요. 이유는 모르겠습니다.
for loop안에서 qrData->Next()의 위치를 옮겼더니 에러가 안나네요.
다른건 하나도 안고치고요.
이렇게요.
              .....
              str_linenum=qrData->Fields->FieldByName("Line_Num")->AsString;
             str_ordercode=qrData->FieldByName("Order_Code")->AsString;
            str_goodscode=qrData->FieldByName("Goods_Code")->AsString;
            str_dividecode=qrData->FieldByName("Divide_Code")->AsString;
            str_goodsprice=qrData->FieldByName("Goods_Price")->AsString;
            str_goodsvalue=qrData->FieldByName("Goods_Value")->AsString;
            str_price=qrData->FieldByName("Price")->AsString;
            str_goodstax=qrData->FieldByName("Goods_TAX")->AsString;
            str_totalprice=qrData->FieldByName("Total_Price")->AsString;
            str_pv=qrData->FieldByName("PV")->AsString;
            str_bv=qrData->FieldByName("BV")->AsString;
            str_canceltype=qrData->FieldByName("Cancel_Type")->AsString;
            
             //여기로 옮기니까 잘됩니다. 씨발
             qrData->Next();
            
             sprintf(.....
무슨 이유때문인지는 모르겠지만 제 실수 같지는 않거든요.
이유를 아시는 분 계시면 부디 알려주시기 바랍니다.


: 무식장이 님이 쓰신 글 :
: : sprintf(Order_Num,"%20s",qrData->FieldByName("Order_Code")->AsString.c_str());
: :
: : 멀쩡한 건데 계속 EAccess Violation 나네요.
: :
: : 어이가 없어서 에러나는 부분만 복사해다가 테스트 해보니 잘됩니다.
: : 이상해서 sprintf를 strcpy로 바꿔서 해보니까 또 잘되고.
: : 다시 sprintf로 고치니까 또 에러나길래 다시 strcpy로 바꾸니까 이번엔 EAccess Violation
: : 나네요.
: :
: : 도대체 뭣 때문에 이럴까요. 고수분들의 지적바랍니다.
:
: 이거 진짜 골때리네요.
:
: 리플달아 주신 분 말대로 AnsiString 변수 선언하고 거기다 넣어서 그변수로
: sprintf를 쓰니까 그부분은 에러가 안나는데 qrData->Next();에서 에러가 납니다.
:
: int dcnt=0;
: AnsiString ddata;
:
: qrData->First();
:
: for(;!qrData->Eof;)
:      {
:           memset(Line_Num,0x00,sizeof(Line_Num));
:           memset(Order_Num,0x00,sizeof(Order_Num));
:           memset(Goods_Code,0x00,sizeof(Goods_Code));
:           memset(Divide_Code,0x00,sizeof(Divide_Code));
:           memset(Goods_Price,0x00,sizeof(Goods_Price));
:           memset(Goods_Value,0x00,sizeof(Goods_Value));
:           memset(Price,0x00,sizeof(Price));
:           memset(Goods_TAX,0x00,sizeof(Goods_TAX));
:           memset(Total_Price,0x00,sizeof(Total_Price));
:           memset(PV,0x00,sizeof(PV));
:           memset(BV,0x00,sizeof(BV));
:           memset(Cancel_Type,0x00,sizeof(Cancel_Type));
:
:           str_linenum=qrData->Fields->FieldByName("Line_Num")->AsString;
:           str_ordercode=qrData->FieldByName("Order_Code")->AsString;
:           str_goodscode=qrData->FieldByName("Goods_Code")->AsString;
:           str_dividecode=qrData->FieldByName("Divide_Code")->AsString;
:           str_goodsprice=qrData->FieldByName("Goods_Price")->AsString;
:           str_goodsvalue=qrData->FieldByName("Goods_Value")->AsString;
:           str_price=qrData->FieldByName("Price")->AsString;
:           str_goodstax=qrData->FieldByName("Goods_TAX")->AsString;
:           str_totalprice=qrData->FieldByName("Total_Price")->AsString;
:           str_pv=qrData->FieldByName("PV")->AsString;
:           str_bv=qrData->FieldByName("BV")->AsString;
:           str_canceltype=qrData->FieldByName("Cancel_Type")->AsString;
:
:           sprintf(Line_Num,"%4s",str_linenum.c_str());
:           sprintf(Order_Num,"%20s",str_ordercode.c_str());
:           sprintf(Goods_Code,"%10s",str_goodscode.c_str());
:           sprintf(Divide_Code,"%9s",str_dividecode.c_str());
:           sprintf(Goods_Price,"%11s",str_goodsprice.c_str());
:           sprintf(Goods_Value,"%4s",str_goodsvalue.c_str());
:           sprintf(Price,"%11s",str_price.c_str());
:           sprintf(Goods_TAX,"%11s",str_goodstax.c_str());
:           sprintf(Total_Price,"%11s",str_totalprice.c_str());
:           sprintf(PV,"%11s",str_pv.c_str());
:           sprintf(BV,"%11s",str_bv.c_str());
:           sprintf(Cancel_Type,"%1s",str_canceltype.c_str());
:
:           ddata+=String(Line_Num)+String(Order_Num)+String(Goods_Code)
:                    +String(Divide_Code)+String(Goods_Price)+String(Goods_Value)
:                    +String(Price)+String(Goods_TAX)+String(Total_Price)+String(PV)
:                    +String(BV)+String(Cancel_Type);
:
:           qrData->Next(); <=여기서 Eaccess violation납니다.
:           ++dcnt;
:      }

+ -

관련 글 리스트
28425 이거 왜이런지 아시는 분? 아니면 추측이라도 무식장이 1091 2004/01/07
34238     Re:이거 왜이런지 아시는 분? 아니면 추측이라도 김태선 968 2004/01/08
34237     Re:이거 왜이런지 아시는 분? 아니면 추측이라도 이필교 938 2004/01/08
34236     Re:이거 왜이런지 아시는 분? 아니면 추측이라도 김민식 964 2004/01/08
28447     Re: 속는셈치고 함 해보심이 이필교 922 2004/01/08
28431     Re:이거 진짜 골때리네요 무식장이 974 2004/01/08
28438         진짜 욕나온다. 이거 왜이런지 아시나요?(해결은 됐는데...) 무식장이 913 2004/01/08
34235             Re:진짜 욕나온다. 이거 왜이런지 아시나요?(해결은 됐는데...) 나우시카 896 2004/01/09
28445             해결된 것이 아니었네요 무식장이 908 2004/01/08
28440             [답변] qrData->First(); 후 얻어온 데이터 정성훈.해미 1150 2004/01/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.