Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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
то что видишь ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо