Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Ошибка


Автор: MyNick 24.10.2005, 09:48
При попытке создания в таблице новой записи вылетает ошибка Dataset not in edit or insert mode, readonly стоит false, оспользую MsSql. В чем дело?

Автор: Satana 24.10.2005, 10:07
Код в студию!!! Чем пыташеься записать? есть ли у пользователя права на запись...
Максимально больше давай инфы!!! smile

Автор: MyNick 24.10.2005, 10:11
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTable1.Append;
ADOTable1.FieldByName('name').AsString:='Данные';
ADOTable1.FieldByName('ID_Parent').AsString:='1';
ADOTable1.Post;
MemTableEh1.Active := false;
MemTableEh1.Active := True;
end;


есть таблица с полями id,id_parent и name
права есть)

Автор: MyNick 24.10.2005, 12:44
оказывается проблема в том что в ключевом поле не выполняется автоинкремент
подскажите как быть....
Добавлено @ 12:44
оказывается проблема в том что в ключевом поле не выполняется автоинкремент
подскажите как быть....

Автор: s 25.10.2005, 04:52
А у поля IDENTITY в YES установлено?

Автор: Satana 25.10.2005, 07:27
MyNick, S прав, посмотри в Enterprise Manager в дизайнере таблиц, выделив нужное тебе поле, внизу будет небольшая табличка вот там должно стоять свойство IDENTITY в YES.

И еще я бы тебе посоветовал пользоваться всетки обычными нормальными SQL запросами smile весь твой код выглядел бы примерно так:
SQLDataSet1.CommandText:='UPDATE TABLE_NAME SET ID_PARENT=1, NAME='+#39+ДАННЫЕ+#39;
SQLDataSet1.ExecSQL;

Автор: MyNick 25.10.2005, 08:20
поставил значение ....
теперь при попытке редактирования вылетает ошибка 'List index out of bounds (-1)' smile
Добавлено @ 08:27
не помог инкримент и первая ошибка тоже вылетает(

Автор: s 25.10.2005, 13:45
Запустите SQL Query Analyzer и выполните что-нибудь вроде

Код

INSERT INTO TABLE_NAME (ID_PARENT, NAME)
    VALUES  (111, 'xxxx')


если добавление пройдет нормаль, то ищите ошибку в коде (возможно вы читаете в массив с индексом id, а размерность этого массива меньше чем id; это в качестве предположения).

Автор: MyNick 26.10.2005, 09:11
пробовал уже и так, вылетает окно с просьбой ввести логин и пароль если ничего не вводить то зависает на какое время и потом вылетает оишбка подключеня к базе , в adoconnection LoginPromt стоит false.....
подскажите в чем дело ...)

Автор: Satana 26.10.2005, 09:33
MyNick Ну подтверждение пароля стоит в фалс, а забит ли он у тебя в соответствующие поля?

Автор: MyNick 26.10.2005, 09:39
я в подключении поставил Nt intrgratede sequrity
и когда подключался через Table ничего вводить не надо было....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)