powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Dataset not in edit or insert mode
15 сообщений из 15, страница 1 из 1
Dataset not in edit or insert mode
    #39847276
registered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dataset not in edit or insert mode

Код: pascal
1.
2.
3.
4.
5.
6.
7.
mysqltable7.Open;
mysqltable7.IndexName:='param';
MySQLTable7.Edit;
if MySQLTable7.findkey(['pass']) then
  begin

  end;



Почему? Программа была рабочая.
D7, mySQLDAC (работало даже без строчки с Edit).
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847281
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Методу findkey не нужен режим редактирования... Это весь код?
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847283
registered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
связанный с MySQLTable7 - весь. до ошибки.
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847287
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
registered,

Возможно какие-то события висят на датасете? AfterScroll итп...
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847290
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
registered,

Очевидно, FindKey выводит датасет из режима редактирования.
А ты, вероятно, пытаешься менять значения внутри IF.
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847301
registered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вероятно, старая версия компонент, и не поддерживает "новый" (5.5) MySQL. Писалось, когда ещё было 4.какой-то.
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847308
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
registered,

Если после .Edit поставить Exit, ошибка не пропадет?
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847318
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
registered,

Предыдущий вопрос отзываю.)) А если отладчиком по исходникам?
Ведь это же, очевидно, ошибка из VCL, а не стороны сервера.
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847386
registered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кинуло куда-то сюда:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
constructor TmySQLBlobStream.Create(Field: TBlobField; Mode: TBlobStreamMode);
var
  OpenMode: DbiOpenMode;
begin
  FMode := Mode;
  FField := Field;
  FDataSet := FField.DataSet as TmySQLDataSet;
  FFieldNo := FField.FieldNo;
  if not FDataSet.GetActiveRecBuf(FBuffer) then Exit;
  if FDataSet.State = dsFilter then
    DatabaseErrorFmt(SNoFieldAccess, [FField.DisplayName], FDataSet);
  if not FField.Modified then
  begin
    if Mode = bmRead then
    begin
      FCached := FDataSet.FCacheBlobs and (FBuffer = FDataSet.ActiveBuffer) and
        (FField.IsNull or (FDataSet.GetBlobData(FField, FBuffer) <> ''));
      OpenMode := dbiReadOnly;
    end else
    begin
      FDataSet.SetBlobData(FField, FBuffer, '');
      if FField.ReadOnly then DatabaseErrorFmt(SFieldReadOnly,
        [FField.DisplayName], FDataSet);
      if not (FDataSet.State in [dsEdit, dsInsert]) then // dsSetKey
        DatabaseError(SNotEditing, FDataSet);
      OpenMode := dbiReadWrite;
    end;
    if not FCached then
    begin
      if FDataSet.State = dsBrowse then
        FDataSet.GetCurrentRecord(FDataSet.ActiveBuffer);
      Check(Engine, Engine.OpenBlob(FDataSet.Handle, FBuffer, FFieldNo, OpenMode));
    end;
  end;
  FOpened := True;
  if Mode = bmWrite then Truncate;
end;
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847388
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
registered
Код: pascal
1.
if Mode = bmRead then


В блоб пишешь всё таки.
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847428
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
registered,

Ты весь стек вызовов на этой точке предъяви. Неужели FindKey его вызывало?
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847442
registered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
TmySQLBlobStream.Create(???,bmWrite)
TmySQLDataSet.CreateBlobStream(???,???)
TmySQLDataSet.SetKeyFields(???,(...))
TmySQLTable.FindKey(???)
TForm1.FormCreate(???)
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847448
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
registered,

В этом самом датасет есть блоб-поля?
Попробуй добавить во множество в выделенной строке кода элемент dsSetKey или как там его.
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847498
registered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блобов нет.

Добавил dsSetKey в [dsEdit, dsInsert] - работает, только кодировки, видимо, не поддерживаются.
БД и таблицы были в utf-8, а в компоненте - не поддерживаются.
У mySQLDatabase пробовал задавать Charset в params.strings - не помогает.
Перевёл всю таблицу в cp1251, и отправляю команду "set names 'cp1251' collate 'cp1251_general_ci'", тогда - работает (если отправлять 'utf8' при БД и таблицах в utf8, тогда - нет).
Не знаю, насколько это правильно.
...
Рейтинг: 0 / 0
Dataset not in edit or insert mode
    #39847515
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
registered,

А что авторы тех компонентов - скрылись?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Dataset not in edit or insert mode
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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