Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

InsertRecord (ADOTable) [D7, MSSQL]


vic ©   (2004-08-04 15:43:00) 

Есть таблица, где первое поле - первичный ключ и автоинкремент, т.е.
create table table1(
id numeric identity(1,1) primary key,,
name varchar(20))

Пытаюсь вставить запись:

ADOTable1.InsertRecord([1,'asd']);

Не работает, выдает ошибку, что нельзя менять id, и это понятно.
Пытаюсь вставить запись:

ADOTable1.InsertRecord(['asd']);

Тоже не работает, выдает ту же ошибку. Как же вставить запись в таком случае? (т.е. без 1-ого поля)


vic   (2004-08-05 10:07:00) [1]

>Попробуй первый парметр поставить в Nil
спасибо


AleKo   (2004-08-05 08:23:00) [2]

Попробуй первый парметр поставить в Nil

ADOTable1.InsertRecord([Nil,'asd']);


vic   (2004-08-04 16:26:00) [3]

2Соловьев
я же написала, что их 42, последнее - 41


Соловьев   (2004-08-04 16:23:00) [4]

потому как полей-то может и 41, но последнее 40


vic   (2004-08-04 16:20:00) [5]

>Либо порядок полей поменять в ADOTable1 (явно их определив), так, чтобы id было в конце (тогда его можно не записывать)
Это больше подходит, т.к. полей оч.много (42)
Но на это:
PlatTable.FieldList.Exchange(0,41);
меняю 1 поле с последним

ругается :list index out of bound(0)
Почему?


KSergey   (2004-08-04 15:47:00) [6]

Либо порядок полей поменять в ADOTable1 (явно их определив), так, чтобы id было в конце (тогда его можно не записывать)
Либо

ADOTable1.Insert;
ADOTable1.Fields.DieldBuName('name').AsString = 'ля-ля тополя';
ADOTable1.Post;


Соловьев   (2004-08-04 15:46:00) [7]

А если так:
ADOTable1.Insert;
ADOTable1.fieldByName('name').AsString := 'asd';
ADOTable1.Post;
?


Наверх

Титульная страница Поиск, карта сайта Написать письмо