powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL+UniDAC+SQLInsert
2 сообщений из 2, страница 1 из 1
MySQL+UniDAC+SQLInsert
    #39172778
Stasonych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Простите, если уже где-то мелькал данный вопрос, но в моем контексте я ответа не видел.

В общем ситуация такая. Пишу запрос в DataSet ( UniDAC )

Код: plsql
1.
2.
3.
4.
SELECT
  *
from 
 tbl_incidents



У данного датасета также прописываю SQLInsert на вкладке UpdateSQL . В нем ничего необычного нет.
В таком режиме все работает хорошо. Новые записи успешно добавляются.

Теперь... Мне нужно данные из датасета сортировать и представить их упорядоченными. Естественно, я добавляю операцию сортировки в запрос
Код: plsql
1.
2.
3.
4.
5.
SELECT
  *
from 
 tbl_incidents
order by tbl_incidents.Date_incident



Всё работает! Усложняю этот запрос, добавлением связи с другой таблицей и у меня вставка начинает вываливаться с ошибкой "Field Id must have a value". Т.е. связка операции сортировки и LEFT JOIN приводит к такому результату.

Вот итоговый запрос выборки
Код: plsql
1.
2.
3.
4.
5.
6.
SELECT
 *
FROM tbl_incidents
LEFT JOIN sp_office
    ON (sp_office.id = tbl_incidents.id_sp_office_created)
order by tbl_incidents.Date_incident



и запрос SQLInsert, который не менялся на всем протяжении изменений (взят для примера). Поле id - автоинкремент
Код: plsql
1.
2.
3.
4.
INSERT INTO tbl_incidents
  (id)
VALUES
  (:id )



Я не понимаю почему Delphi вываливает ошибку mysql, если вставка прописана отдельным запросом. Я даже вместо параметра :id просто прописывал 0 . Все равно вываливается. А вот если пропишу число конкретное (вместо автоинкремента), то все хорошо.
Друзья, кто сталкивался с таким? Как выходить из этой ситуации? Не думаю, что я один с такой проблемой сталкивался и, вероятно, есть простое решение. Но я его не нахожу пока.
Надеюсь объяснил суть нормально...
Заранее благодарен всем!
...
Рейтинг: 0 / 0
MySQL+UniDAC+SQLInsert
    #39172820
Stasonych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, я так понимаю, это какие-то приколы самих компонентов.
Вроде нашел обходное решение.
У DataSet есть метод SetOrderBy(). Соответственно в самом запросе order убираем. Перед вставкой вызываем этот метод с пустым параметром, т.е. затираем сортировку, если она там была.
Далее выполняем вставку новой записи через метод датасета DataSet.Insert.
Когда запись успешно добавляется, то снова вызываем метод SetOrderBy(' date_incident'), указывая в нем поле сортировки.
Таким образом, отражение данных в привязанной таблице визуально не изменится для пользователя.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / MySQL+UniDAC+SQLInsert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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