답변 감사합니다. 가뭄에 단비를 만난 심정이었는데요...(델마당 가서도 올려주신 답변 읽어봤습니다.)
동적으로 생성된 DataSetProvider에 이름이 없을 수도 있다는 말씀에
DataSetProvider의 이름을 지정하는 라인을 추가하고
다시 시도했는데 같은 에러가 같은 위치에서 발생하고 있습니다.
뭐가 잘못된 것일까요?
var
SQLQuery1: TSQLQuery;
DataSetProvider1: TDataSetProvider;
ClientDataSet1: TClientDataSet;
begin
SQLQuery1 := TSQLQuery.Create(self);
DataSetProvider1 := TDataSetProvider.Create(self);
DataSetProvider1.name := 'DataSetProvider1'; // <-- 추가된 라인
ClientDataSet1 := TClientDataSet.Create(self);
try
SQLQuery1.SQLConnection := SQLConnection1;
// 이미 만들어진 정상작인 Connection 객체 연결 ... 이상없슴.
DataSetProvider1.DataSet := SQLQuery1;
DataSetProvider1.Options = [poAllowCommandText, poRetainServerOrder, poUseQuoteChar];
ClientDataSet1.ProviderName := DataSetProvider1.Name;
ClientDataSet1.CommandText := 'select * from test.fdb';
ClientDataSet1.Open; // 에러발생 ---> ClientDataSet1: Missing data provider or data packet
finally
SQLQuery.Free;
DataSetProvider1.Free;
ClientDataSet1.Free;
end;
end;
흐르는산 님이 쓰신 글 :
: DataSetProvider의 이름이 없어서 발생하는 에러입니다.
: DataSetProvider의 이름을 정해주면 됩니다. 델마당에도 답변 올렸습니다.
:
: 꼴찌DB 님이 쓰신 글 :
: : 안녕하세요? 꼴찌입니다.
: :
: : 델마당에 올렸던 질문인데 주인을 만나지 못한 질문입니다.
: : 길잃은 질문에 주인을 찾아주시면 감사하겠습니다.
: : -------------------------------------------------------
: :
: : TSQLConnection 객체는 정상적으로 세팅된게 있다고 가정하고요..
: : 일단 폼에 TSQLQuery, TDataSetProvider, TClientDataSet을 떨어트린 후
: : 각각의 속성값 잡아주고 연결하면 너무 잘됩니다.
: :
: : 그런데 아래처럼 코드상으로 객체를 생성하고
: : 연결을 시도하면 에러가 납니다. ㅠㅠ;
: : 별스럽게 다 해봐도 결과가 똑같은데...
: : 현재로선 동적생성후 연결이 원래 안되는거 같은데...
: : 혹시 동적으로 객체 생성 후 DBExpress 연결 성공해 보신분 있으신지요?
: :
: : var
: : SQLQuery1: TSQLQuery;
: : DataSetProvider1: TDataSetProvider;
: : ClientDataSet1: TClientDataSet;
: : begin
: :
: : SQLQuery1 := TSQLQuery.Create(self);
: : DataSetProvider1 := TDataSetProvider.Create(self);
: : ClientDataSet1 := TClientDataSet.Create(self);
: :
: : try
: : SQLQuery1.SQLConnection := SQLConnection1;
: : // 이미 만들어진 정상작인 Connection 객체 연결 ... 이상없슴.
: :
: : DataSetProvider1.DataSet := SQLQuery1;
: :
: : DataSetProvider1.Options = [poAllowCommandText, poRetainServerOrder, poUseQuoteChar];
: :
: : ClientDataSet1.ProviderName := DataSetProvider1.Name;
: :
: : ClientDataSet1.CommandText := 'select * from test.fdb';
: :
: : ClientDataSet1.Open; // 에러발생 ---> ClientDataSet1: Missing data provider or data packet
: :
: : finally
: : SQLQuery.Free;
: : DataSetProvider1.Free;
: : ClientDataSet1.Free;
: :
: : end;
: :
: : end;
|