IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Ошибка при записи в Access, странно
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 178
Пол: Мужской

Репутация: -  0  +


Код
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' писать не хочет - выдаёт ошибку что поле не найдено.
Что проверить, где может быть проблема?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


сначала метод Edit, потом Insert... Вот и ошибка. И зачем сначала Close потом Open?
Form2.ADOQuery1.insert;
...
Form2.ADOQuery1.Post;


Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
где может быть проблема?
В попытке вносить изменения в базу данных через ADOQuery + прямую запись в поля (вместо того чтобы закрыть Query, заполнить ее поле SQL нужным INSERT-запросом, открыть Query и вызвать этот запрос через ExecSQL).

Не надо делать действия не предназначенными для этого средствами. Это приведет (сейчас или потом, но приведет обязательно) к проблемам, из-за которых ты в последний момент будешь вынужден переписывать либо весь код, либо значительную его часть. Если тебя это устраивает - пиши как тебе нравится. Если нет - пиши правильно. SQL - это слишком мощный язык, чтобы его недооценивать или реализовывать вручную то, что можно легко сделать с его помощью.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


ыыыыщщщщщщыыыы
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Вообще с методами post,insert,delete надо очень аккуратно работать. они приемлемы только в том случае, когда идет работа с одной таблицей. при работе с несколькими таблицами или связанными таблицами эти методы будут скорее всего выдавать ошибку. сейчас работая над одним проектом,на который выдали очень мало времени? все заполнения таблиц делаю используя dbedit'ы и вышеназванные методы adoquery. очень удобно, и довольно быстро получается, но опять же надо четко понимать с чем ты работаешь.
Советую вместо edit'ов воткнуть dbedit'ы, после чего использовать
adoquery.open;
adoquery.append;
adoquery.insert;

естественно, пердварительно связав dbedit'ы с соответствующими таблицами и полями
или же как сказал volvo юзай sql запросы, типа такого:
adoquery.sql.clear;
adoquery.sql.add('insert into {название таблицы} (client_name,client_address,client_phone)' );
adoquery.sql.add('values ('''+edit1.Text+''','''+edit2.Text+''','''+edit3.Text+''');');
adoquery.execsql;


Сообщение отредактировано: Feagor -


--------------------
Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 20:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name