Форум: "Начинающим";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
ВнизНе добавляется запись в Firebird Найти похожие ветки
← →
serko © (2006-08-28 20:37) [0]Есть база FireBird первое поле в ней автоинкрементное, но не разобрался как оно работает. Создался какой то генератор установил начальное значение для него в 1. Но почемуто автоматически оно не увеличивается, сам присваиваю ему значение. Расскажите как им пользоваться!
Но главная беда собственно в том что при
Form1.IBTransaction1.StartTransaction;
Try
If not Form1.IBTable1.Active then
Form1.IBTable1.Open;
Form1.IBTable1.InsertRecord([1,"123","Петров И.А."]);
Form1.IBTransaction1.Commit;
Except
Form1.IBTransaction1.Rollback;
Raise;
End;
Запись то появляется в Гриде но при повторном запуске программы там ничего нет. Куда она девается? мот я что то не так делаю?
← →
palva © (2006-08-28 21:22) [1]Создался какой то генератор
Должен еще создасться триггер. Если вы INSERT новую запись и НЕ ЗАДАЕТЕ значение данного поля, то значение генератора увеличивается на единицу (или на величину установленную в триггере) и эта величина помещается в данное поле.
← →
palva © (2006-08-28 21:52) [2]А не добавляется может потому что на автоинкрементном поле стоит уникальный индекс, а ты пытаешься туда все время значение 1 писать?
← →
serko © (2006-08-28 22:15) [3]
> А не добавляется может потому что на автоинкрементном поле
> стоит уникальный индекс, а ты пытаешься туда все время значение
> 1 писать?
Оно то добавляется но почему то при перезапуске программы все что добавлял\удалял пропадает\появляется! я же все понимаю и насчет значения 1, меняю я их (пока с автоинкриментом не разберусь)
> Должен еще создасться триггер. Если вы INSERT новую запись
> и НЕ ЗАДАЕТЕ значение данного поля, то значение генератора
> увеличивается на единицу (или на величину установленную
> в триггере) и эта величина помещается в данное поле.
И тригер добавил и делаю так: Form1.IBTable1.InsertRecord([nil,"123","Петров И.А."]);
Но в первом поле просто пусто и все!
← →
unknown © (2006-08-28 23:16) [4]
> serko © (28.08.06 20:37)
Значит так. IBTable надо забыть раз и навсегда. Использовать надо IBDataSet.
Работать с ним просто - щелкаем на нем правой кнопкой, выбираем пункт
DataSet editor и там настраиваем запросы.
у IBDataSet есть еще св-во GenertorField - там можно указать имя генератора и
момент, когда будет генерироваться следующее значение.
В общем, тут все сказано : http://www.ibase.ru/devinfo/ibx.htm
← →
serko © (2006-08-28 23:41) [5]я уже разобрался, но почему то значения показывает после перезапуска проги, а так просто "Пусто"
А как в DataSet добавлять записи? InsertRecord не катит!
← →
unknown © (2006-08-29 00:04) [6]
> serko © (28.08.06 23:41) [5]
Чего не катит? Ругается нецензурно что-ли?
Между прочим, InsertRecord это метод TDataset, потомками которого являются
как ibtable, так и ibdataset.
← →
Desdechado © (2006-08-29 12:27) [7]> почему то значения показывает после перезапуска проги
Если значение генерируется триггером, то нужнопереоткрыть датасет, чтоб узнать, что было сгенерировано. Если другими методами, то можно не переоткрывать
← →
serko © (2006-08-29 20:43) [8]
> Чего не катит? Ругается нецензурно что-ли?
Cannot modify a read only dataset
Вот такое пишет!
← →
Sergey13 © (2006-08-30 08:50) [9]> [8] serko © (29.08.06 20:43)
Ну так сделай его не "read only". Хелп почитай.
← →
serko © (2006-08-30 18:48) [10]
> Ну так сделай его не "read only". Хелп почитай
Шо и где делать?
В IBDataSet нет такого свойства ReadOnly, я бы поменял!
Если с IBTable все ок а вот в IBDataSet отакая вот фигня!
← →
Sergey13 © (2006-08-31 08:23) [11]> [10] serko © (30.08.06 18:48)
> Шо и где делать?
> В IBDataSet нет такого свойства ReadOnly, я бы поменял!
> Если с IBTable все ок а вот в IBDataSet отакая вот фигня!
Это не фигня - это нежелание читать ни хелп ни другую общедоступную литературу/документацию. У IBDataSet есть другие свойства, например ModifySQL, DeleteSQL и другие.
← →
serko © (2006-08-31 21:26) [12]
> Между прочим, InsertRecord это метод TDataset, потомками
> которого являются
> как ibtable, так и ibdataset.
Зачем мне ModifySQL и т.д. если вот люди говорят что так должно работать....
Просто нужно разобраться как именно это сделать!
Ато что есть много других способов я не сомневаюсь!
← →
Virgo_Style © (2006-08-31 21:30) [13]serko © (31.08.06 21:26) [12]
это не другой способ
← →
serko © (2006-08-31 22:04) [14]хорошо! покажите мне любой рабочий пример который добавляет,изменяет и удаляет запись!
Большое спасибо....
← →
Виталий Панасенко (2006-08-31 23:13) [15]
> serko © (31.08.06 22:04) [14]
> хорошо! покажите мне любой рабочий пример который добавляет,
> изменяет и удаляет запись!
> Большое спасибо....
Слухай сюды ! Тебе люди дело кажуть ! Нужно ОБЯЗАТЕЛЬНО заполнить ModifySQL, DeletSQL, RefreshSQL, INsertSQL(кроме SelectSQL). Тогда все действия типа IBDataSet.Insert АВТОМАТИЧЕСКИ вызовут InsertSQL, IBdataSet.Delete -DeleteSQL и тд. Ты не путай х.. бит с байтом ! Это не локальная БД - все далается через запыты(запросы)...
← →
Виталий Панасенко (2006-08-31 23:20) [16]
> serko © (31.08.06 22:04) [14]
> хорошо! покажите мне любой рабочий пример который добавляет,
> изменяет и удаляет запись!
> Большое спасибо....
Слухай сюды ! Тебе люди дело кажуть ! Нужно ОБЯЗАТЕЛЬНО заполнить ModifySQL, DeletSQL, RefreshSQL, INsertSQL(кроме SelectSQL). Тогда все действия типа IBDataSet.Insert АВТОМАТИЧЕСКИ вызовут InsertSQL, IBdataSet.Delete -DeleteSQL и тд. Ты не путай х.. бит с байтом ! Это не локальная БД - все далается через запыты(запросы)...
← →
unknown © (2006-09-01 00:36) [17]
> serko © (31.08.06 22:04) [14]
Еще один писатель.
Я ссылку в [4] для кого выложил?
Там достаточно полно и с примером рассказано о TIBDataSet.
← →
serko © (2006-09-02 21:40) [18]ё маё! что ж я это морочу всем голову!
Простите!
А unknown большое спасибо! Не обратил внимания на ссылку!
СПАААСИИИБААА!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.041 c