Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 048

/ вопрос решён /

Здравствуйте!
Делаю форму для добавления записей.
Использую mssql server 2005 + ado
Вроде бы настроил поля ID так, чтобы они были автоинкрементными)
Соответственно это поле самому и не надо вписывать, оно будет автоматически считаться. А вот второе поле нужно записать. Записываю в обычный Edit.

Но потом выскакивает ошибка, как на рисунке. Что не так?
Если же дописать такие строчки, например для создания формы:
ADODataSet1.CommandType:=cmdTable;
ADODataSet1.CommandText:= 'Имя Таблицы';
ADODataSet1.Open;
то вроде бы записывает значения... но как бы приходится как-то обновить DBGrid.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1. procedure TForm2.Button1Click(Sender: TObject);
  2. begin
  3. ADODataSet1.Insert;
  4. ADODataSet1.Fields[1].Value:=Edit1.Text;
  5. ADODataSet1.Post;
  6. end;
  7.  


Driver_09 Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Driver_09 (статус: Посетитель)
Вопрос отправлен: 6 апреля 2012, 11:19
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 7 апреля 2012, 21:30; участников в обсуждении: 3.
Вадим К

Вадим К (статус: Академик), 6 апреля 2012, 12:57 [#1]:

А нигде случайно базу не закрываете?
Галочка "подтверждения прочтения" - вселенское зло.
Driver_09

Driver_09 (статус: Посетитель), 6 апреля 2012, 13:14 [#2]:

вроде нет)
есть только такая строчка: ADODataSet1.Close;
использую её в самом конце процедуры, которая выводит все значения поля в Combobox.
А так вроде бы нигде
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 6 апреля 2012, 19:31 [#3]:

а перед insert Dataset открыт?
Driver_09

Driver_09 (статус: Посетитель), 6 апреля 2012, 22:03 [#4]:

Мережников Андрей: ну вот как я и написал, если вставить например для создания формы:
ADODataSet1.CommandType:=cmdTable;
ADODataSet1.CommandText:= 'Имя Таблицы';
ADODataSet1.Open;
, то вроде бы срабатывает это дело)
если же этого не написать, то ошибка)
Но если этот кусок кода вставить в процедуру этой кнопки, то тоже почему-то не работает, не понял почему
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 6 апреля 2012, 22:26 [#5]:

прогоните под отладчиком. где-то до insert Dataset закрывается.
Driver_09

Driver_09 (статус: Посетитель), 6 апреля 2012, 22:31 [#6]:

Мережников Андрей, хорошо, прогоню)))
Driver_09

Driver_09 (статус: Посетитель), 7 апреля 2012, 21:30 [#7]:

прогонял под отладчиком, то ли не так проверил, то ли что...
но в общем мало что там понял)) решил все таки написать на клик кнопки такую штуку:
ADODataSet1.Close;
 ADODataSet1.CommandType:=cmdTable;
 ADODataSet1.CommandText:= 'имя';
 ADODataSet1.Open;
 ADODataSet1.Insert;
 ADODataSet1.Fields[1].AsString:=Edit1.Text;
 ADODataSet1.Post;
 ADODataSet1.Refresh;
 ADODataSet1.Open;

Может быть конечно не очень красиво, но вроде все работает)))

18 апреля 2012, 16:56: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 16:48
Выполнено за 0.02 сек.