Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.24;
Скачать: CL | DM;

Вниз

Не добавляется запись в 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.03 c
15-1157263685
Новичоккк
2006-09-03 10:08
2006.09.24
Помогите разобраться с сетевыми пакетами


15-1157182127
UMU
2006-09-02 11:28
2006.09.24
Какая разница между D7 Professional и D7 Enterprice?


2-1157539322
Serjio77
2006-09-06 14:42
2006.09.24
Поиск и замена символа в строке содержащей n символов


15-1157048924
ArtemESC
2006-08-31 22:28
2006.09.24
Кривые Безье для чайника !


6-1146737769
марк
2006-05-04 14:16
2006.09.24
Принять поток/файл в ответ на запрос.