|
무식장이 님이 쓰신 글 :
: 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;
}
|