![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день! Пишу небольшую базу данных на делфи! вроде все делаю правильно , но постоянно выходит ошибка Cannot perform this operation on a closed dataset! Работаю с компонентом kmemtable (позволяет создавать таблицу в памяти, выгружать и загружать). Вот сам код
Код:
if od.Execute then
begin
sfCSV.CSVQuote:='"';
sfCSV.CSVRecordDelimiter:=',';
showmessage('1');
bdcomp1.Active:=true;
bdcomp1.Open;
if bdcomp1.Active then showmessage('открыта');
bdcomp1.LoadFromFileViaFormat('c:\1.csv',sfCSV);
showmessage('открыт111а');
dsbdcomp.DataSet:=bdcomp1;
bdcomp1.Active:=true;
end;Не смотрите что код кривой, просто я уже проверки делаю на активность базы. А ошибка выходит на строчке bdcomp1.LoadFromFileViaFormat('c:\1.csv',sfCSV); кто что может подсказать, а то у меня вариантов не осталось! Последний раз редактировалось Admin, 03.04.2009 в 10:20. |
|
#2
|
||||
|
||||
|
Ты сделал проверку на открытость БД и вывод соответствуещего сообщения об этом ... а вот что сделать если БД не открыта ты не сделал
Дкмаю, лучше будет так: Код:
if od.Execute then
begin
sfCSV.CSVQuote:='"';
sfCSV.CSVRecordDelimiter:=',';
dsbdcomp.DataSet:=bdcomp1;
try
bdcomp1.Open;
try
bdcomp1.LoadFromFileViaFormat('c:\1.csv',sfCSV);
showmessage('открыт111а');
Except
ShowMessage('Ошибка открытия файла');
end;
Except
ShowMessage('Ошибка открытия БД');
end;
end;Последний раз редактировалось Yurk@, 03.04.2009 в 23:06. |