Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.042 c
15-1157641033
Pazitron_Brain
2006-09-07 18:57
2006.09.24
Колледж + ВУЗ или среднее + ВУЗ


15-1157286084
DillerXX
2006-09-03 16:21
2006.09.24
Наши научились делать нормальные шоу?!..


15-1157089246
Blidro
2006-09-01 09:40
2006.09.24
За работу предлагаю 100 WMR


1-1155502154
FireMan_Alexey
2006-08-14 00:49
2006.09.24
Вопрос по поводу Hook-a


2-1157608445
zdm
2006-09-07 09:54
2006.09.24
разделитель





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский