powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Delphi TSQLQuery LAST_INSERT_ID всегда возвращает 0
2 сообщений из 2, страница 1 из 1
Delphi TSQLQuery LAST_INSERT_ID всегда возвращает 0
    #39297332
snake32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени!
Не могу никак заставить TSQLQuery вернуть мне последний вставленный ID
В MySQL WorkBench всё прекрасно отрабатывает а в Delphi XE2 возвращает 0
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    MySQLQuery.SQL.Text := 'INSERT INTO docs (sid, name, ext, data) VALUES (:SID,:NAME,:EXT,:DATA)';
    MySQLQuery.ParamByName('SID').AsInteger := t.sid;
    MySQLQuery.ParamByName('NAME').AsString := t.name;
    MySQLQuery.ParamByName('EXT').AsString := t.ext;
    SetLength( t.data, m.Size );
    Move( m.Memory^, t.data[0], m.Size );
    MySQLQuery.ParamByName('DATA').AsBlob := t.data;
    if MySQLQuery.ExecSQL() = 1 then
    begin
        MySQLQuery.SQL.Text := 'SELECT LAST_INSERT_ID() as ID';
        MySQLQuery.Open;
        if not MySQLQuery.Eof then
        begin
          t.id := MySQLQuery.Fields[0].AsInteger; // всегда 0!
          lbViewFiles.AddItem( t.name+'.'+t.ext, t );
          t := nil;
        end;
    end;
...
Рейтинг: 0 / 0
Delphi TSQLQuery LAST_INSERT_ID всегда возвращает 0
    #39298735
snake32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил проблему с помощью транзакции.
Так же можно вроде через хранимые процедуры.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Delphi TSQLQuery LAST_INSERT_ID всегда возвращает 0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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