Форум: "Начинающим";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Внизinterbase. Найти похожие ветки
← →
vasek © (2005-11-15 02:47) [0]IBTable1.Open;
IBTable1.Insert;
IBTable1.Fields[0].AsInteger:= 1;
IBTable1.Fields[1].AsString:= "1";
IBTable1.Post;
IBTransaction1.Commit;
вместо интеджер:= 1 в таблице(в базе) получаю поле заполненное -- 0
вместо стринг:= "1" в таблице(в базе) получаю -- пустое поле
← →
Digitman © (2005-11-15 08:43) [1]а если просто
Open -> Insert -> Post -> Commit
то что видишь ?
← →
Vasek © (2005-11-15 12:02) [2]exception -> EDatabaseError with message Field "New_Field" must have a value. Process stopped... я так понимаю не нравится ему что транзакция закрывается, а поле пустое.
← →
Sergey13 © (2005-11-15 12:09) [3]Тригера на инсерт нету? Если есть, то что в нем?
← →
Digitman © (2005-11-15 12:10) [4]
> я так понимаю не нравится ему что транзакция закрывается,
> а поле пустое
неправильно понимаешь.
при Post() это исключение возникает (если конечно же кэширования нет), а не при Commit()
приводи скрипт таблицы.
а триггеры у таблицы есть ?
← →
vasek © (2005-11-15 13:35) [5]SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE TABLE NEW_TABLE (NEW_FIELD INTEGER NOT NULL);
- нет тригера. подскажите неграмотному, что делать. написать тригер, какой? перед вставкой, после вставки.... если можно пример.
← →
Sergey13 © (2005-11-15 13:39) [6]2 [5] vasek © (15.11.05 13:35)
В скрипте у таблицы только одно целочисленное поле. Откуда в программе
IBTable1.Fields[1].AsString:= "1";
?
ЗЫ: Как то обзывать по человечески таблицы и поля фантазии не хватает? 8-)
← →
Digitman © (2005-11-15 13:43) [7]
> vasek © (15.11.05 13:35) [5]
пути всех "неграмотных" пересекаются на ibase.ru
← →
vasek © (2005-11-15 13:59) [8]это я вторую создал с одним полем. какая в принципе разница одо поле, два главное ведь подход понять, какой тригер написать...
← →
Digitman © (2005-11-15 14:05) [9]
> vasek © (15.11.05 13:59) [8]
> главное ведь подход понять, какой тригер написать
никто ж не заставляет тебя оной писать ... но если таковой уже имеется - будь любезен понимать, зачем он нужен, что, для чего, при каких условиях и в какой момент этот триггер делает
← →
Sergey13 © (2005-11-15 14:11) [10]2[8] vasek © (15.11.05 13:59)
>это я вторую создал с одним полем
А какая польза от второй таблицы для решения проблем с первой?
>главное ведь подход понять, какой тригер написать...
В данном случае тригер тебе и не нужен. Я так понял, что ты разбираешься с "неправильной" записью в БД? Вот и разбирайся, где у тебя подмена происходит.
← →
vasek © (2005-11-15 15:01) [11]да именно в таблице записанны не те значения, которыя я пытаюсь туда записать. в первом случае два поля, во втором одно но результат один - нули в поле интеджер и пустое поле в стринге... не пойму где подмена происходит, даже не знаю куда смотреть :(
нет тригера. должен быть, какой?
← →
Sergey13 © (2005-11-15 15:10) [12]2 [11] vasek © (15.11.05 15:01)
В ИБЭксперте (или что там у тебя есть) выполни запрос типа
Insert into table_Name(Field1,Field2) values(1,"1")
Имена естественно твои должны быть. Получится или нет?
← →
vasek © (2005-11-15 16:16) [13]в АйБиЭксперте запускаб Скьюэль редактор Ф12 выполняю запрос:
Insert into NEW_TABLE (NEW_FIELD) values(1) получаю:
1 record(s) was(were) inserted into NEW_TABLE
------ Performance info ------
Prepare time = 0ms
Execute time = 0ms
Current memory = 1 382 140
Max memory = 1 523 200
Memory buffers = 2 048
Reads from disk to cache = 0
Writes from cache to disk = 2
Fetches from cache = 9
захожу в закладку данные, все прошло.
← →
Sergey13 © (2005-11-15 16:20) [14]2 [13] vasek © (15.11.05 16:16)
Значит где то в программе чего то напутал. В БифоПост ничего нет? Вообще обработчики у твоей IBTable1 есть? Какие?
← →
vasek © (2005-11-15 16:49) [15]у меня на форме: АйБиДатабэйс, АйБиТранзакшн, АйБиТэйбл, ДатаСоурсе, ДбГрид ну еще кнопка. Все между собой законекчено и все больше ничего( обработчиков нет за исключение стандартных которые появляются сами при коннекшине и обработчика нажатия на кнопку :( ). Может чтото лишнее на форме или какоето свойство забыл переключить...?
← →
Sergey13 © (2005-11-15 16:55) [16]2 [15] vasek © (15.11.05 16:49)
>обработчиков нет за исключение стандартных которые появляются сами при коннекшине
Это что за обработчики?
>и обработчика нажатия на кнопку
Ну давай его что-ли сюда. 8-) Полностью только.
← →
vasek © (2005-11-15 17:09) [17]procedure TForm1.Button1Click(Sender: TObject);
begin
IBTable1.Open;
IBTable1.Insert;
IBTable1.Fields[0].AsInteger:= 1;
IBTable1.Post;
IBTransaction1.Commit;
end;
← →
msguns © (2005-11-15 17:20) [18]Скорее всего у него Fields[0] "посажен" на генератор, стартовое значение которого = 0. И, т.к. создавалась таблица (и генератор) в эксперте, создался триггер BEFORE INSERT, где значение ключа изімается из генератор. То же, что посылал клиент, просто игнорируется.
← →
vasek © (2005-11-15 17:26) [19]нет тригеров - в закладке триггеры ничего нет. а где я могу увидеть "посажен" на генератор, стартовое значение которого = 0 или нет ?
← →
vasek © (2005-11-15 18:13) [20]Digitman © , Sergey13 ©, msguns ©, народ, давайте уже поставим жирную точку.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.038 c