Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Ошибка при добавлении в БД


Автор: Skodina 11.5.2010, 20:19
Добрый день, у меня возникла такая проблема, существует база данных в Access
связана с программой через ADOQuery
нужно добавить в нее еще запись, это я сделала, но теперь нужно отлавливать ошибки если вдруг пользователь ввел существующее поле

вот кусок программы которую я написала
DataModule3.ADOQuery2.Active:=False;
DataModule3.ADOQuery2.SQL.Clear;
DataModule3.ADOQuery2.SQL.ADD('SELECT * FROM [Магазины] WHERE [код_магазина]='+ Edit1.Text +';');
DataModule3.ADOQuery2.Active:=True;
if DataModule3.ADOQuery2.RecordCount=0 then
begin
DataModule3.ADOQuery2.SQL.Text := 'INSERT INTO Магазины (код_магазина, название_магазина) VALUES ( ' + QuotedStr(Edit1.Text) + ',' + QuotedStr(Edit2.Text) + ')';
DataModule3.ADOQuery2.ExecSQL;
end
else ShowMessage('Такая запись уже есть');
[/code]
столкнулась с тем, что программа выдает такую ошибку
user posted image
дело в том, что код магазина у меня текстовый :( изменять бы не хотелось, а вот в таблицах где код цисловой все работает на ура, подскажите как мне быть и желательно чтобы не править таблицу  smile 

Автор: Данкинг 11.5.2010, 20:34
Цитата(Skodina @  11.5.2010,  21:19 Найти цитируемый пост)
if DataModule3.ADOQuery2.RecordCount then

А сиё что имеет смыслом нести в наш бренный мир? smile 

Ж1 - это что, название поля? Ошибка не Дельфи вызывается, а самим Access'ом.

Автор: Skodina 11.5.2010, 21:06
прошу прощения, очепяталась, теперь правильно, но в программе было все правильно, и как мне с этой ошибкой быть?

Ж1 это значение поля

Автор: Frees 11.5.2010, 21:10
Цитата(Skodina @  12.5.2010,  00:06 Найти цитируемый пост)
и как мне с этой ошибкой быть

искать откуда взялось Ж1, может это поле в таблице Магазины.
Посмотри какой запрос в итоге при добавлении выполняется работает ли этот запрос в access

Автор: Skodina 11.5.2010, 21:15
Цитата(Frees @ 11.5.2010,  21:10)

искать откуда взялось Ж1, может это поле в таблице Магазины.
Посмотри какой запрос в итоге при добавлении выполняется работает ли этот запрос в access

мне нужно добавить новую запись в таблицу состоящую из двух полей код_магазина и название_магазина, перед этим я хочу проверить, не вводит ли пользователи код магазина, который ужесуществует в базе. код магазина я ввожу в Edit1. На двух других таблицах эта программа работает, но там код является числовым полем, а в этой таблице код текстовый. Ж1 это значение кода.

Автор: Данкинг 12.5.2010, 01:20
Так если текстовое поле, то QuotedStr не стоит забывать в select'е.

Автор: Skodina 12.5.2010, 10:27
точно smile спасибо smile теперь работает smile smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)