|
제가 지금 database에 manage하는 class를 설계하고 있습니다.
생성자에서 connection string 을 받아서 database를 설정하구요
메소드로 sql문을 받아서
select하는 함수
그냥 update insert하는 exec함수 등이 있습니다.
문제는 update 나 insert함수는 return을 bool로 하면되는데
select함수일경우 return을 TDataSource로 하고싶습니다.
그런데 이게 잘안되네요
간단히 class 코드를 적으면....
class CDBConnection
{
private:
TDatabase *Database;
TQuery *Query;
TDataSource *DataSource;
public:
__fastcall CDBConnection(TDatabase *inDatabase, TQuery *inQuery, TDataSource *inDataSource);
void __fastcall DBOpen(AnsiString sql);
TDataSource __fastcall DBOpen(TQuery *query, AnsiString sql);
void __fastcall DBExec(AnsiString sql);
};
제가 원하는 것은 위에서
TDataSource __fastcall DBOpen(TQuery *query, AnsiString sql);
메소드를 어떻게 설계하냐는 것이죠~!
좀더 구체적으로 db query가 문제가 아니라
query해온 datasource를 return하지를 못하고 있습니다
return하려면 new로 생성을 해야된다나 어쩐다나... error 문에 그렇게 나오던데
TDataSource를 new로 생성하려니 TComponent 의 형의 Owner를 넘겨줘야 되더군요
TDataSource __fastcall DBOpen(TQuery *query, AnsiString sql)
{
TComponent *obj;
TDataSource *source=new TDataSource(obj);
//쿼리문 생략
return source; //이부분에서 계속 에러남
}
위와같이 하니 계속 에러가 납니다.
읽어주셔서 감사합니다.
좋은 답변 기대하겠습니다.
샬롬~!
|