Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.10.2012, 13:52
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию ADOTable - ошибка

Здравствуйте!
Имею такой вот элементарный код записи строки в таблицу access-овской базы данных:
Код:
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
form4.Table_Rab.Insert;
form4.Table_Rab.Edit;
form4.Table_Rab.FieldValues['n_r'] := form2.Memo1.Text;
form4.Table_Rab.FieldValues['obgr'] := form2.Memo2.Text;
form4.Table_Rab.FieldValues['ur1'] := ur1; 
form4.Table_Rab.FieldValues['ur2'] := ur2;
form4.Table_Rab.FieldValues['ur3'] := ur3;
form4.Table_Rab.FieldValues['ur4'] := ur4;
form4.Table_Rab.FieldValues['kto'] := form2.ComboBox1.Text;
form4.Table_Rab.FieldValues['v_r'] := form2.ComboBox2.Text;
form4.Table_Rab.FieldValues['dk'] := form2.Edit5.Text;
form4.Table_Rab.FieldValues['tz_GS'] := StrToFloat(form2.Edit1.Text);
form4.Table_Rab.FieldValues['kil_GS'] := StrToInt(form2.Edit2.Text);
form4.Table_Rab.FieldValues['obs_PS_r'] := StrToFloat(form2.Edit3.Text);
form4.Table_Rab.FieldValues['kil_PS_r'] := StrToInt(form2.Edit4.Text);
form4.Table_Rab.FieldValues['mat_PS'] := StrToFloat(form2.Edit6.Text);
form4.Table_Rab.FieldValues['obs_PS_i'] := StrToFloat(form2.Edit7.Text);
form4.Table_Rab.FieldValues['kil_PS_i'] := StrToFloat(form2.Edit8.Text);
form4.Table_Rab.FieldValues['naim'] := form2.Edit9.Text;
form4.Table_Rab.FieldValues['isp'] := polz;
form4.Table_Rab.FieldValues['tim'] := now;
form4.Table_Rab.Post;
end;
Ошибку, которая возникает прилагаю. Странность в том, что каждое из этих полей пишется без проблем отдельно. Ну, т.е. если закомментировать остальные и оставить запись в одно поле или даже несколько. Как только пытаюсь писать ВСЕ поля записи вылазит такое! Может в технологии ADO есть ограничение на количество полей записи базы?
Изображения
Тип файла: jpg error.JPG (25.2 Кбайт, 5 просмотров)
Ответить с цитированием
  #2  
Старый 19.10.2012, 13:57
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

А какие из этих полей у тебя логические?
Ответить с цитированием
  #3  
Старый 19.10.2012, 14:06
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию

В том то и дело, что нету у меня логических полей! Что за хрень такая! Сижу второй день, честно говоря, и мыслей не осталось

Только числовые и строковые Всё!

заполняется форма ввода, кнопка записи и больше никаких изысков. ur1,ur2,ur3,ur4,polz - глобальные. Они имеют конкретное значение при входе в процедуру, как и положено

Последний раз редактировалось Red_Garry, 19.10.2012 в 14:09.
Ответить с цитированием
  #4  
Старый 19.10.2012, 14:16
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Red_Garry
В том то и дело, что нету у меня логических полей! Что за хрень такая! Сижу второй день, честно говоря, и мыслей не осталось

Только числовые и строковые Всё!

заполняется форма ввода, кнопка записи и больше никаких изысков. ur1,ur2,ur3,ur4 - глобальные. Они имеют конкретное значение при входе в процедуру, как и положено
Попробуй позаменять FieldValues, на:
Код:
  form4.Table_Rab.FieldByName('...').AsString := ...;// Для строковых
  form4.Table_Rab.FieldByName('...').AsFloat := ...;// Для дробных
  form4.Table_Rab.FieldByName('...').AsInteger := ...;// Для целых
  form4.Table_Rab.FieldByName('...').AsDateTime := ...;// Для дат
  // и т.д.
Можешь по одному, чтобы выяснить где глюк

Кстати, а почему здесь используются и Insert и Edit?:
Цитата:
Сообщение от Red_Garry
Код:
...
form4.Table_Rab.Insert;
form4.Table_Rab.Edit;
...
Обычно достаточно чего-то одного: для вставки новой записи - Insert (или Append), для редактирования текущей записи - Edit.
Ответить с цитированием
  #5  
Старый 19.10.2012, 14:32
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию

Так заработало. Спасибо большое! Короче, век живи век учись
Ответить с цитированием
  #6  
Старый 19.10.2012, 14:35
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Red_Garry
Так заработало. Спасибо большое! Короче, век живи век учись
Интересно в чём же был глюк. Почему была попытка преобразовать строку в логическое если в таблице нет полей логического типа...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:14.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter