![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
interbase.
vasek © (2005-11-15 02:47:00)IBTable1.Open;
IBTable1.Insert;
IBTable1.Fields[0].AsInteger:= 1;
IBTable1.Fields[1].AsString:= '1';
IBTable1.Post;
IBTransaction1.Commit;
вместо интеджер:= 1 в таблице(в базе) получаю поле заполненное -- 0
вместо стринг:= '1' в таблице(в базе) получаю -- пустое поле
vasek (2005-11-15 18:13:00) [1]Digitman © , Sergey13 ©, msguns ©, народ, давайте уже поставим жирную точку.
vasek (2005-11-15 17:26:00) [2]нет тригеров - в закладке триггеры ничего нет. а где я могу увидеть "посажен" на генератор, стартовое значение которого = 0 или нет ?
msguns (2005-11-15 17:20:00) [3]Скорее всего у него Fields[0] "посажен" на генератор, стартовое значение которого = 0. И, т.к. создавалась таблица (и генератор) в эксперте, создался триггер BEFORE INSERT, где значение ключа изімается из генератор. То же, что посылал клиент, просто игнорируется.
vasek (2005-11-15 17:09:00) [4]procedure TForm1.Button1Click(Sender: TObject);
begin
IBTable1.Open;
IBTable1.Insert;
IBTable1.Fields[0].AsInteger:= 1;
IBTable1.Post;
IBTransaction1.Commit;
end;
Sergey13 (2005-11-15 16:55:00) [5]2 [15] vasek © (15.11.05 16:49)
>обработчиков нет за исключение стандартных которые появляются сами при коннекшине
Это что за обработчики?
>и обработчика нажатия на кнопку
Ну давай его что-ли сюда. 8-) Полностью только.
vasek (2005-11-15 16:49:00) [6]у меня на форме: АйБиДатабэйс, АйБиТранзакшн, АйБиТэйбл, ДатаСоурсе, ДбГрид ну еще кнопка. Все между собой законекчено и все больше ничего( обработчиков нет за исключение стандартных которые появляются сами при коннекшине и обработчика нажатия на кнопку :( ). Может чтото лишнее на форме или какоето свойство забыл переключить...?
Sergey13 (2005-11-15 16:20:00) [7]2 [13] vasek © (15.11.05 16:16)
Значит где то в программе чего то напутал. В БифоПост ничего нет? Вообще обработчики у твоей IBTable1 есть? Какие?
vasek (2005-11-15 16:16:00) [8]в АйБиЭксперте запускаб Скьюэль редактор Ф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 15:10:00) [9]2 [11] vasek © (15.11.05 15:01)
В ИБЭксперте (или что там у тебя есть) выполни запрос типа
Insert into table_Name(Field1,Field2) values(1,'1')
Имена естественно твои должны быть. Получится или нет?
vasek (2005-11-15 15:01:00) [10]да именно в таблице записанны не те значения, которыя я пытаюсь туда записать. в первом случае два поля, во втором одно но результат один - нули в поле интеджер и пустое поле в стринге... не пойму где подмена происходит, даже не знаю куда смотреть :(
нет тригера. должен быть, какой?
Sergey13 (2005-11-15 14:11:00) [11]2[8] vasek © (15.11.05 13:59)
>это я вторую создал с одним полем
А какая польза от второй таблицы для решения проблем с первой?
>главное ведь подход понять, какой тригер написать...
В данном случаетригер тебе и не нужен. Я так понял, что ты разбираешься с "неправильной" записью в БД? Вот и разбирайся, где у тебя подмена происходит.
Digitman (2005-11-15 14:05:00) [12]
> vasek © (15.11.05 13:59) [8]
> главное ведь подход понять, какой тригер написать
никто ж не заставляет тебя оной писать ... но если таковой уже имеется - будь любезен понимать, зачем он нужен, что, для чего, при каких условиях и в какой момент этот триггер делает
vasek (2005-11-15 13:59:00) [13]это я вторую создал с одним полем. какая в принципе разница одо поле, два главное ведь подход понять, какой тригер написать...
Digitman (2005-11-15 13:43:00) [14]
> vasek © (15.11.05 13:35) [5]
пути всех "неграмотных" пересекаются на ibase.ru
Sergey13 (2005-11-15 13:39:00) [15]2 [5] vasek © (15.11.05 13:35)
В скрипте у таблицы только одно целочисленное поле. Откуда в программе
IBTable1.Fields[1].AsString:= '1';
?
ЗЫ: Как то обзывать по человечески таблицы и поля фантазии не хватает? 8-)
vasek (2005-11-15 13:35:00) [16]SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE TABLE NEW_TABLE (NEW_FIELD INTEGER NOT NULL);
- нет тригера. подскажите неграмотному, что делать. написать тригер, какой? перед вставкой, после вставки.... если можно пример.
Digitman (2005-11-15 12:10:00) [17]
> я так понимаю не нравится ему что транзакция закрывается,
> а поле пустое
неправильно понимаешь.
при Post() это исключение возникает (если конечно же кэширования нет), а не при Commit()
приводи скрипт таблицы.
а триггеры у таблицы есть ?
Sergey13 (2005-11-15 12:09:00) [18]Тригера на инсерт нету? Если есть, то что в нем?
Vasek (2005-11-15 12:02:00) [19]exception -> EDatabaseError with message Field 'New_Field' must have a value. Process stopped... я так понимаю не нравится ему что транзакция закрывается, а поле пустое.
Digitman (2005-11-15 08:43:00) [20]а если просто
Open -> Insert -> Post -> Commit
то что видишь ?