Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 21

Sql Запрос на обновление данных. SqlDataSet

24.12.2013, 18:25. Показов 2236. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Как правильно должен выглядеть такой запрос:
Есть две таблицы Поставка пакетов и Пакеты в них есть поля (kod_p, colich_p) как сделать так чтоб при нажатии на кнопку в одну таблицу добавлялись данные из еdit3 и edit4(это я сделал) а в другой изменилось поле количество(т.е. к той цифре которая есть в поле colich_p(таблица Пакеты) прибавилась цифра из edit4). В edit3 я ввожу kod_p.

Как правильно должен выглядеть такой запрос?

моя наработка
Delphi
1
2
3
datamodule3.SQLDataSet14.Close;
Datamodule3.SQLDataSet14.CommandText:='update packages set colich_p=colich_p+(edit4.text) where kod_p=(edit3.text)';
datamodule3.SQLDataSet14.open;
Заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2013, 18:25
Ответы с готовыми решениями:

Sql запрос на обновление ошибка при передаче данных из поля
Я составил sql запрос и хотел бы передать из edit1.text числовое значение для запроса, выдаёт ошибку: "несоответствие типов данных в...

Не работает SQL запрос на обновление данных
Не могу понять почему не работает простенький SQL запрос на обновление, имена всех полей правильные. Запрос на добавление через эту же...

Sql запрос на обновление
Ребят, сделал базу данных по кинотеатру, потребовали сделать, запрос на обновление полей для записи Использовал подключение ADO ...

12
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
24.12.2013, 21:22
Delphi
1
2
3
datamodule3.SQLDataSet14.Close;
Datamodule3.SQLDataSet14.CommandText:='update packages set colich_p=colich_p+'+edit4.text+' where kod_p='+edit3.text;
datamodule3.SQLDataSet14.open;
Работать будет, но так делать нельзя.
1
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 21
24.12.2013, 21:38  [ТС]
Цитата Сообщение от quwy Посмотреть сообщение
Работать будет, но так делать нельзя.
Спасибо буду пробовать. А как можно?
0
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
24.12.2013, 21:49
sander989, а вы попробуйте в edit3 вместо цифры ввести текст 0 or 1=1.

Добавлено через 3 минуты
А делать надо при помощи параметрических запросов.
0
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 21
24.12.2013, 22:02  [ТС]
Цитата Сообщение от quwy Посмотреть сообщение
sander989, а вы попробуйте в edit3 вместо цифры ввести текст 0 or 1=1.
У меня же тип данных числовой в поле kod_p .
Цитата Сообщение от quwy Посмотреть сообщение
А делать надо при помощи параметрических запросов.
спасибо, буду знать на будущие.
0
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
24.12.2013, 22:04
Цитата Сообщение от sander989 Посмотреть сообщение
У меня же тип данных числовой в поле kod_p .
А это как раз не имеет значения, в том и опасность.
0
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 21
24.12.2013, 22:10  [ТС]
он выдает ошибку invalid value kod_p
0
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
24.12.2013, 22:17
Вы ввели именно 0 or 1=1 без кавычек и прочей фигни? Скопируйте из форума и вставьте в поле ввода.
0
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 21
24.12.2013, 22:23  [ТС]
Цитата Сообщение от quwy Посмотреть сообщение
Вы ввели именно 0 or 1=1 без кавычек и прочей фигни? Скопируйте из форума и вставьте в поле ввода.
всё так и сделал, он выдал ошибку
Цитата Сообщение от sander989 Посмотреть сообщение
invalid value kod_p
Добавлено через 3 минуты
тут возникла проблема, данные в поле colich_p(где мы прибавляем из edit3) обновляются после того как я закрыл программу и снова открыл. в чем может быть дело?
0
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
24.12.2013, 22:24
Чудеса! Не знаю как это у вас получилось, но суть в том, что при вводе этого значения, SQL-запрос принимает в итоге такой вид:
SQL
1
UPDATE packages SET colich_p=colich_p+123 WHERE kod_p=0 OR 1=1
Т.е. условие под WHERE всегда истинно и апдейт пойдет по всем записям, а не по какому-то одному kod_p.

Добавлено через 47 секунд
Цитата Сообщение от sander989 Посмотреть сообщение
тут возникла проблема, данные в поле colich_p(где мы прибавляем из edit3) обновляются после того как я закрыл программу и снова открыл. в чем может быть дело?
COMMIT нужно сделать после UPDATE.
0
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 21
24.12.2013, 22:34  [ТС]
Цитата Сообщение от quwy Посмотреть сообщение
Чудеса! Не знаю как это у вас получилось, но суть в том, что при вводе этого значения, SQL-запрос принимает в итоге такой вид:
Код SQL
1
UPDATE packages SET colich_p=colich_p+123 WHERE kod_p=0 OR 1=1
я наверное понял почему, потому что у меня сначала из этого поля данные заносятся в таблицу Поставка пакетов он и не пропускает это значение, а уже потом обновляются данные в таблице Пакеты.

Добавлено через 3 минуты
Цитата Сообщение от quwy Посмотреть сообщение
COMMIT нужно сделать после UPDATE.
извиняюсь за глупый вопрос, это как?
0
Native x86
Эксперт Hardware
 Аватар для quwy
6853 / 3787 / 1024
Регистрация: 13.02.2013
Сообщений: 11,861
24.12.2013, 22:45
Цитата Сообщение от sander989 Посмотреть сообщение
извиняюсь за глупый вопрос, это как?
Используется ADO? Если да, то перед запросом делать ADOConnection1.BeginTrans, а после запроса ADOConnection1.CommitTrans.

Добавлено через 1 минуту
Хотя, я так подумал, у вас просто в интерфейсе наверное новые данные не отображаются, тогда нужно переоткрыть (Close -> Open) датасет, который отвечает за начитку и отображение таблицы.
0
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 21
24.12.2013, 22:58  [ТС]
Цитата Сообщение от quwy Посмотреть сообщение
Используется ADO? Если да, то перед запросом делать ADOConnection1.BeginTrans, а после запроса ADOConnection1.CommitTrans.
Использую sqlConnection. БД в MySql.
Цитата Сообщение от quwy Посмотреть сообщение
Хотя, я так подумал, у вас просто в интерфейсе наверное новые данные не отображаются, тогда нужно переоткрыть (Close -> Open) датасет, который отвечает за начитку и отображение таблицы.
Да в интерфейсе программы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.12.2013, 22:58
Помогаю со студенческими работами здесь

запрос на SQL на обновление
Добрый день ВСЕМ!!!!!!!! Помогите пожалуйста с запросом. Мне нужно обновить одну таблицу данными с двух других, при условии , что...

SQL-запрос на обновление строк
Всем доброго времени суток! Помогите, пожалуйста, написать, как мне кажется, не сложный запрос. Имеется таблица: tablel1, в ней есть...

InterBase. SQL запрос на обновление
Добрый день! Как построить запрос на изменение записи в таблице?

Запрос SQL на обновление из VBA
Всем привет! Помогите, пожалуйста.... Написал код (корявый но работает!) Set bst = mdb.OpenRecordset("Запрос1") ...

Обновление ячеек на листе в excel через sql-запрос
Добрый день! На листе в экселе имеется таблица, которая время от времени служит источником данных для sql-запросов. На данный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru