| 
| 
 | Вопрос # 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: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |