TClientDataSet and DLL trouble
От: Valentin._.  
Дата: 15.05.04 11:28
Оценка:
Всем привет!
Пытаюсь реализовать следующую задумку...
Есть dll, в которой есть компонент TClientDataSet. Требуется при загрузке dll пропарсить и загрузить в TClientDataSet текстовый файл с диска. dll динамически вызывается потоком приложения, в котором этих потоков может быть много. Само приложение является сервисом.

void __fastcall TDM::LoadDataBase(char * FileName, const char Delimiter)
{
char NUMART[10]; char BARCODE[15]; char NAME[80];
char PRICE[8]; char s[128]; AnsiString z;
fstream str(FileName,ios_base::in);
str.seekp(0);
while(!str.eof())
{
str.getline(s,256,'\n');
if (strlen(s)>0)
{
ParseString(s,Delimiter,NUMART,BARCODE,NAME,PRICE);

ClientDataSet1->Append(); //после этого вырубается поток

ClientDataSet1->FieldByName("NUMART")->AsString=NUMART;
ClientDataSet1->FieldByName("BARCODE")->AsString=BARCODE;
ClientDataSet1->FieldByName("NAME")->AsString=NAME;
ClientDataSet1->FieldByName("PRICE")->AsString=PRICE;
ClientDataSet1->Post();
}
};

str.close();
}


После вызова Append, тихо без всяких сообщений вырубается поток и больше ничего... Причем этот же код нормально работает в простом приложении (не из dll).

Подскажите в чем дело? Как это обойти?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.