DBExpress 로 SQLQuery 와 DBGrid 연결할 때... (MySQL 5.0.37 DB와 연결 시)
아래 함수처럼 폼에 모든 콤포넌트를 올려놓은 뒤 그 컴포넌트로 연결할 땐 오류 없이 연결됩니다.
void DBGridLink(TDBGrid *grid,TDataSource *DS,TDataSetProvider *DSP,TClientDataSet *CDS,TSQLQuery *Query,String sql)
{
CDS->ProviderName = "DSP";
DS->DataSet = CDS;
DSP->DataSet = Query;
grid->DataSource = DS;
SelectSQL(sql,Query); // select 명령 실행
CDS->Active=true;
}
아래처럼 runtime 으로 생성해서 연결하려하면 에러 메시지가 뜹니다.
( Error Msg : Missing data provider or data packet )
void DBGridLink2(TSQLConnection *conn,TDBGrid *grid,TSQLQuery *qry,String sql)
{
conn=DBConnect(conn,1); // MySQL DB 연결
if (!conn) return;
qry->SQLConnection = conn;
TDataSource *DS = new TDataSource(0);
TClientDataSet *CDS = new TClientDataSet(0);
TDataSetProvider *DSP = new TDataSetProvider(0);
CDS->ProviderName = "DSP";
DSP->DataSet = qry;
DS->DataSet = CDS;
grid->DataSource = DS;
SelectSQL(sql,qry); // select 명령 실행 - Select가 됨을 확인했습니다...
CDS->Active=true;
}
어떻게 연결해야 오류 없이 연결이 되겠는지요?
고수님들 명쾌한 해결책 부탁드립니다... 꾸벅~
|