|
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
|
||||||||||||||||
Каким образом работает команда .append в ADOQuery ?01.06.2015, 17:42. Показов 6528. Ответов 16
Метки нет (Все метки)
У меня в проекте как минимум 3 раза встречается место где через ADOQuery мне нужно на отдельной форме Добавить/редактировать запись в таблице, и удалить(Но об этом позже)!!! Поэтому был бы очень рад с кем то пообщаться кто сказал бы как лучше всё сделать!
Редактирование на готовые записи работает, Добавление попросту не добавляет новую строку, а заменяет первую запись. Грешу на то что неправильно использую синтаксис метода append.
Кнопка "Сохранить и выйти"
0
|
||||||||||||||||
| 01.06.2015, 17:42 | |
|
Ответы с готовыми решениями:
16
Не работает метод Append в ADOQuery Как записать новую запись в базу данных и почему не отрабатывает команда append Чем метод adoquery sql.add отличается от метода sql.append этого компонента? |
|
554 / 484 / 191
Регистрация: 11.12.2013
Сообщений: 2,505
|
||||||
| 01.06.2015, 17:52 | ||||||
|
попробуйте так:
0
|
||||||
|
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
|
||
| 01.06.2015, 18:46 [ТС] | ||
|
Такой же простой командой выходило добавлять записи через ADOTable. Уже пробовал заполнять эти таблицы через ADOTable, а выводить через ADOQuery, но тогда сталкивался с другими проблемами, поэтому вернулся к первоначальному виду, и снова мучаюсь по поводу добавления строки.
Добавлено через 6 минут Неужели без запроса тут никак не обойтись? И можно ли это сделать в этом же запросе или придётся создавать новый чисто для добавления строки? Но тогда ведь если я передумаю создавать запись и закрою окно то пустая строка останется? Добавлено через 46 минут Уважаемые форумчане, очень прошу помощи, может кто-то будет не против по скайпу выйти чтобы всё было легче объяснить. Я нашёл довольно много информации по редактированию, добавлению, но всё везде по разному и сложно разобраться, может мне использовать не BDEdit а обычные и всё прописывать в запросах, делать редактирование через .Modified или запросом Update. Я просто сел в тупик и не знаю в какую сторону двигаться! Раньше не имел опыта работы с БД, в делфи так тем более поэтому возникает много проблем.
0
|
||
|
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
|
||||||
| 01.06.2015, 20:02 [ТС] | ||||||
|
Решил изменить программу чтобы Добавление/редактирование делать полностью с помощью запросов.
Ругается на ParamByName. Сама база является дочерней, её ключ создаётся авто инкременцией, мне лишь нужно через DBLookupListBox связать её с родительской, ну и заполнить ещё несколько полей. Подскажите в чём ошибка!
форма на которой заполняется можно увидеть на 1-ой записи в моём посте.
0
|
||||||
|
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
|
||||||
| 01.06.2015, 20:20 [ТС] | ||||||
|
Исправил код на более правильный, но по прежнему ругается на ParamByName
0
|
||||||
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
|
| 01.06.2015, 20:20 | |
|
1
|
|
|
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
|
||
| 01.06.2015, 20:33 [ТС] | ||
|
Но вот что вылазит: И следом указывает на эту строку: В БД у меня все записи с полем id стоят на int. В Лукапах в keyField выставлены поля верно. Может конечно ругаться на DateTimePicker1.date, но я так же пробовал и DateTimePicker1.datetime (хотя и нужна мне только дата), но не в этом дело!
0
|
||
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
|
| 01.06.2015, 21:02 | |
|
0
|
|
|
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
|
||
| 01.06.2015, 21:09 [ТС] | ||
|
0
|
||
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
||
| 01.06.2015, 21:18 | ||
|
0
|
||
|
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
|
||
| 01.06.2015, 21:42 [ТС] | ||
|
А как обойти эту проблему? В SQL server'e нету типа данных TField, та и к тому же эти поля с id являются внешними ключами, они должны быть такого же типа данных как и первичные ключи. Добавлено через 16 минут И ещё вот какой вопрос назрел! поля DataField и DataSourse в компонентах DB оставлять пустыми? я ими пользовался когда заполнял таблицу с помощью делфи а не запросов.
0
|
||
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|
| 01.06.2015, 22:13 | |
|
DB-компоненты сами по себе вносят изменения в соответствующую таблицу, поэтому их значения дополнительно никуда добавлять не надо.
В обработчике кнопки подтверждения следует прописать добавление данных лишь из неDB-компонентов (DateTimePicker и т.п.) и делать это средствами Дельфи, а не через запросы.
0
|
|
|
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
|
||
| 01.06.2015, 22:24 [ТС] | ||
|
Пришлось всё переделывать на запросы, и учиться работать с UPDATE и INSERT в MySQL. Просто я уже около 4-5 дней сижу почти на одном месте. Испробовал кучу вариантов, но всегда есть изъяны и приходится всё переделывать! Если вы говорите что можно обойтись без запросов, то подскажите как добавить новую строку через ADOQuery ? В самом верху поста я писал про эту проблему.
0
|
||
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|||
| 01.06.2015, 23:19 | |||
|
Посмотри в самОй базе, может при Аппенде добавляются строки, которых просто не видно в запросе. Еще один момент:
0
|
|||
|
41 / 4 / 4
Регистрация: 20.05.2013
Сообщений: 67
|
|||
| 01.06.2015, 23:39 [ТС] | |||
|
Сейчас ещё поэксперементировал и заметил такую штуку: Когда у меня на форме во всех DB компонентах поля DataField и DataSource были пустые. то Append заработал и я увидел новую строку, но как только по выставлял там связи с полями и DBQuery, запустил, и новая строка уже не появлялась, а опять же начала редактировать.
0
|
|||
|
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
|
|||
| 01.06.2015, 23:58 | |||
|
Каким образом 2 DBLookupListBox могут задавать 3 значения?
1
|
|||
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
|||
| 02.06.2015, 00:54 | |||
|
Посмотри значение свойства DBLookupListBox1.KeyField в инспекторе объектов. Что ты там увидишь? Имя поля в некоей таблице. Имя, а не значение поля! А вот значение поля ты можешь получить из DBLookupListBox1.KeyValue. Тогда хоть код и останется кривым, но всё же будет не бредовым. ![]()
0
|
|||
| 02.06.2015, 00:54 | |
|
Помогаю со студенческими работами здесь
17
Каким образом работает шифр в телеграм?
каким образом работает сам процессор Каким образом работает static_cast в данном выражении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|