![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
cooler |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код begin Form2.ADOQuery1.Close; Form2.ADOQuery1.Open; Form2.ADOQuery1.Edit; Form2.ADOQuery1.insert; Form2.ADOQuery1.FieldByName('client_name').Asstring := Edit1.Text; Form2.ADOQuery1.FieldByName('client_address').Asstring := Edit2.Text; Form2.ADOQuery1.FieldByName('client_phone').Asstring := Edit3.Text; Form2.ADOQuery1.Post; end; Вот фрагмент кода, все поля существуют в тблице, в одной, у всех текстовый тип, таблица сохранена и закрыта Но в 'client_phone' писать не хочет - выдаёт ошибку что поле не найдено. Что проверить, где может быть проблема? |
Client |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
сначала метод Edit, потом Insert... Вот и ошибка. И зачем сначала Close потом Open?
Form2.ADOQuery1.insert; Сообщение отредактировано: Client - 15.05.2010 9:49 |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата где может быть проблема? В попытке вносить изменения в базу данных через ADOQuery + прямую запись в поля (вместо того чтобы закрыть Query, заполнить ее поле SQL нужным INSERT-запросом, открыть Query и вызвать этот запрос через ExecSQL).Не надо делать действия не предназначенными для этого средствами. Это приведет (сейчас или потом, но приведет обязательно) к проблемам, из-за которых ты в последний момент будешь вынужден переписывать либо весь код, либо значительную его часть. Если тебя это устраивает - пиши как тебе нравится. Если нет - пиши правильно. SQL - это слишком мощный язык, чтобы его недооценивать или реализовывать вручную то, что можно легко сделать с его помощью. |
Feagor |
![]()
Сообщение
#4
|
![]() ыыыыщщщщщщыыыы ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
Вообще с методами post,insert,delete надо очень аккуратно работать. они приемлемы только в том случае, когда идет работа с одной таблицей. при работе с несколькими таблицами или связанными таблицами эти методы будут скорее всего выдавать ошибку. сейчас работая над одним проектом,на который выдали очень мало времени? все заполнения таблиц делаю используя dbedit'ы и вышеназванные методы adoquery. очень удобно, и довольно быстро получается, но опять же надо четко понимать с чем ты работаешь.
Советую вместо edit'ов воткнуть dbedit'ы, после чего использовать adoquery.open; естественно, пердварительно связав dbedit'ы с соответствующими таблицами и полями или же как сказал volvo юзай sql запросы, типа такого: adoquery.sql.clear; Сообщение отредактировано: Feagor - 29.05.2010 20:56 -------------------- Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
|
![]() ![]() |
![]() |
Текстовая версия | 14.07.2025 2:23 |