Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1132434324
Officeman
2005-11-20 00:05
2005.12.04
Memo1


14-1131561542
Сафаров
2005-11-09 21:39
2005.12.04
Кто нибудь пытался реализовывать справочник адресов?


1-1131440816
DinoRay
2005-11-08 12:06
2005.12.04
непонятки с таймером 2


14-1131633246
seg
2005-11-10 17:34
2005.12.04
Первопроходцы интернета Винт Серф и Боб Кан получили высочайшую н


14-1131793760
uw
2005-11-12 14:09
2005.12.04
Ван Гог





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский