|
Вопрос # 6 048/ вопрос решён / |
|
Здравствуйте!
Делаю форму для добавления записей.
Использую mssql server 2005 + ado
Вроде бы настроил поля ID так, чтобы они были автоинкрементными)
Соответственно это поле самому и не надо вписывать, оно будет автоматически считаться. А вот второе поле нужно записать. Записываю в обычный Edit.
Но потом выскакивает ошибка, как на рисунке. Что не так?
Если же дописать такие строчки, например для создания формы:
ADODataSet1.CommandType:=cmdTable;
ADODataSet1.CommandText:= 'Имя Таблицы';
ADODataSet1.Open;
то вроде бы записывает значения... но как бы приходится как-то обновить DBGrid.
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
Приложение: Переключить в обычный режим- procedure TForm2.Button1Click(Sender: TObject);
- begin
- ADODataSet1.Insert;
- ADODataSet1.Fields[1].Value:=Edit1.Text;
- ADODataSet1.Post;
- end;
-
 |
Вопрос задал: Driver_09 (статус: Посетитель)
Вопрос отправлен: 6 апреля 2012, 11:19
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 7; последнее сообщение — 7 апреля 2012, 21:30; участников в обсуждении: 3.
|
Вадим К (статус: Академик), 6 апреля 2012, 12:57 [#1]:
А нигде случайно базу не закрываете?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Driver_09 (статус: Посетитель), 6 апреля 2012, 13:14 [#2]:
вроде нет)
есть только такая строчка: ADODataSet1.Close;
использую её в самом конце процедуры, которая выводит все значения поля в Combobox.
А так вроде бы нигде
|
|
Мережников Андрей (статус: Абитуриент), 6 апреля 2012, 19:31 [#3]:
а перед insert Dataset открыт?
|
|
Driver_09 (статус: Посетитель), 6 апреля 2012, 22:03 [#4]:
Мережников Андрей: ну вот как я и написал, если вставить например для создания формы:
ADODataSet1.CommandType:=cmdTable;
ADODataSet1.CommandText:= 'Имя Таблицы';
ADODataSet1.Open; , то вроде бы срабатывает это дело)
если же этого не написать, то ошибка)
Но если этот кусок кода вставить в процедуру этой кнопки, то тоже почему-то не работает, не понял почему
|
|
Мережников Андрей (статус: Абитуриент), 6 апреля 2012, 22:26 [#5]:
прогоните под отладчиком. где-то до insert Dataset закрывается.
|
|
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: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|