powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / SimpleDataSet.DataSet.last ошибка
11 сообщений из 11, страница 1 из 1
SimpleDataSet.DataSet.last ошибка
    #39824457
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрых суток,

Такой вопрос, выполняю обычный запрос на SELECT

Код: pascal
1.
SimpleDataSet.DataSet.CommandText:= 'SELECT * FROM `prefix_topic`';




После, хочу выбрать последний результат из запроса

Код: pascal
1.
SimpleDataSet.DataSet.last



Но получаю ошибку
Код: pascal
1.
2.
3.
---------------------------Debugger Exception Notification---------------------------
Project Project2.exe raised exception class EDatabaseError with message 'InternalDataSet: Operation not allowed on a unidirectional dataset'.
---------------------------Break   Continue   Help---------------------------



Если же просто ставлю в начало и перебираю последовательно до конца. то все ок

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
procedure TfrmInformator.Button1Click(Sender: TObject);
var
  perSQLQuery:TSimpleDataSet;

begin
  perSQLQuery:= FindLastTopic(GperConnectToMySQL,frmInformator);
  perSQLQuery.DataSet.last;
  while not perSQLQuery.DataSet.Eof do
    begin
    Memo1.Lines.Add(inttostr(perSQLQuery.DataSet.FieldByName('topic_id').AsInteger));
    perSQLQuery.DataSet.Next; // перевели курсор на следующую запись...
    end;

  perSQLQuery.Free;

end;



Что за проблема?
...
Рейтинг: 0 / 0
SimpleDataSet.DataSet.last ошибка
    #39824483
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23,

OPEN не вижу...
...
Рейтинг: 0 / 0
SimpleDataSet.DataSet.last ошибка
    #39824488
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какое слово в сообщении об ошибке тебе непонятно? (С)
...
Рейтинг: 0 / 0
SimpleDataSet.DataSet.last ошибка
    #39824499
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerasimenkoFIL23,

OPEN не вижу...

да есть там, я не полностью не выложил.
...
Рейтинг: 0 / 0
SimpleDataSet.DataSet.last ошибка
    #39824500
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюбезныйКакое слово в сообщении об ошибке тебе непонятно? (С)

Объясните плз.
...
Рейтинг: 0 / 0
SimpleDataSet.DataSet.last ошибка
    #39824503
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Связался с dbexpress? Получи unidirectional dataset. Это экономно, но навигация - только Next. Для нормальной навигации надо грузить все в TClientDataSet (обычно цепляется через провайдер). Кстати, там был компонент, где ClientDataSet и провайдер уже прикручены к запросу.
...
Рейтинг: 0 / 0
SimpleDataSet.DataSet.last ошибка
    #39824505
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем использовать perSQLQuery.DataSet, а не perSQLQuery ?
...
Рейтинг: 0 / 0
SimpleDataSet.DataSet.last ошибка
    #39824519
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тут с MySQL работаю.
...
Рейтинг: 0 / 0
SimpleDataSet.DataSet.last ошибка
    #39824539
Квази
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIL23,

ХЗ, что такое SimpleDataSet, но судя по сообщению об ошибке он является unidirectional (однонаправленным). А если память не изменяет, то unidirectional (в противовес bidirectional) dataset поддерживают только Next и First.
...
Рейтинг: 0 / 0
SimpleDataSet.DataSet.last ошибка
    #39824550
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Квази, +1
http://docwiki.embarcadero.com/RADStudio/Rio/en/Using_dbExpress_Datasets автор Many of the capabilities introduced by TDataSet are either unimplemented in unidirectional datasets, or cause them to raise exceptions. For example:

The only supported navigation methods are the First and Next methods. Most others raise exceptions. Some, such as the methods involved in bookmark support, simply do nothing.
There is no built-in support for editing because editing requires a buffer to hold the edits. The CanModify property is always False, so attempts to put the dataset into edit mode always fail. You can, however, use unidirectional datasets to update data using an SQL UPDATE command or provide conventional editing support by using a dbExpress-enabled client dataset or connecting the dataset to a client dataset.
There is no support for filters, because filters work with multiple records, which requires buffering. If you try to filter a unidirectional dataset, it raises an exception. Instead, all limits on what data appears must be imposed using the SQL command that defines the data for the dataset.
There is no support for lookup fields, which require buffering to hold multiple records containing lookup values. If you define a lookup field on a unidirectional dataset, it does not work properly.
...
Рейтинг: 0 / 0
SimpleDataSet.DataSet.last ошибка
    #39824573
FIL23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Квази,

Благодарю за разъяснение
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / SimpleDataSet.DataSet.last ошибка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]