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
[28431] Re:이거 진짜 골때리네요
무식장이 [] 974 읽음    2004-01-08 11:14
무식장이 님이 쓰신 글 :
: 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         진짜 욕나온다. 이거 왜이런지 아시나요?(해결은 됐는데...) 무식장이 914 2004/01/08
34235             Re:진짜 욕나온다. 이거 왜이런지 아시나요?(해결은 됐는데...) 나우시카 897 2004/01/09
28445             해결된 것이 아니었네요 무식장이 908 2004/01/08
28440             [답변] qrData->First(); 후 얻어온 데이터 정성훈.해미 1150 2004/01/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.