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

Такой вопрос, выполняю обычный запрос на 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
08.06.2019, 19:40
    #39824483
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleDataSet.DataSet.last ошибка
FIL23,

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

OPEN не вижу...

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

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

ХЗ, что такое SimpleDataSet, но судя по сообщению об ошибке он является unidirectional (однонаправленным). А если память не изменяет, то unidirectional (в противовес bidirectional) dataset поддерживают только Next и First.
...
Рейтинг: 0 / 0
09.06.2019, 10:07
    #39824550
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleDataSet.DataSet.last ошибка
Квази, +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
09.06.2019, 12:02
    #39824573
FIL23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SimpleDataSet.DataSet.last ошибка
Квази,

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


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