|
먼저 entera를 사용하여 DB에서 배열에 담아
데이타를 긁어 오면 그리드에 뿌려주는 프로그램 입니다
DBGrid 는 PageControl 박스에 올려져 있고요....
그런데 분명히 데이타는 들어오는데(메세지박스로 확인 했음)
그리드에는 데이타가 보여지지 않습니다
좀 도와 주세여...
소스 입니다
두가지 방법다 안되는군요
1번째
//--------------------------------------------------------
if( ret_num > 0 )
{
ClientDataSet1->Close();
ClientDataSet1->CreateDataSet();
ClientDataSet1->DisableControls();
ClientDataSet1->Active = true;
for(idx = 0; idx < ret_num; idx++)
{
ClientDataSet1->Append();
ClientDataSet1hull_no->Value = AnsiString( hull_no[idx] );
ClientDataSet1block_no->Value = AnsiString( block_no[idx] );
ClientDataSet1file_name->Value = AnsiString(file_name[idx]);
ClientDataSet1file_size->Value = AnsiString( file_size[idx] );
ClientDataSet1ver->Value = AnsiString( ver[idx] );
ClientDataSet1trans_date->Value = AnsiString( trans_date[idx] );
ClientDataSet1trans_time->Value = AnsiString( trans_time[idx] );
ClientDataSet1path_name->Value = AnsiString( path_name[idx] );
ClientDataSet1name->Value = AnsiString( name[idx] );
ClientDataSet1->Post();
ClientDataSet1->Next();
}
ClientDataSet1->First();
ClientDataSet1->EnableControls();
}
//--------------------------------------------------------
2번째 방법
if( ret_num > 0 )
{
ClientDataSet1->Close();
ClientDataSet1->CreateDataSet();
ClientDataSet1->DisableControls();
ClientDataSet1->Active = true;
for(idx = 0; idx < ret_num; idx++)
{
TFields *fld = ClientDataSet1->Fields;
ClientDataSet1->Append();
fld->Fields[0]->AsString = AnsiString( hull_no[idx] );
fld->Fields[1]->AsString = AnsiString( block_no[idx] );
fld->Fields[2]->AsString = AnsiString( file_name[idx] );
fld->Fields[3]->AsString = AnsiString( file_size[idx] );
fld->Fields[4]->AsString = AnsiString( ver[idx] );
fld->Fields[5]->AsString = AnsiString( trans_date[idx] );
fld->Fields[6]->AsString = AnsiString( trans_time[idx] );
fld->Fields[7]->AsString = AnsiString( path_name[idx] );
fld->Fields[8]->AsString = AnsiString( name[idx] );
ClientDataSet1->Post();
}
ClientDataSet1->First();
ClientDataSet1->EnableControls();
}
|