powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вставка
22 сообщений из 22, страница 1 из 1
Вставка
    #32583468
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на форме (bcgjkmpetncz Delphi 6) имеются куча Edit -ов. В них заношу какие-то значения. Для работы с IB использую IBDataSet. Хочу вставить запись в таблицу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  IBDS1.InsertSQL.Clear;
  IBDS1.InsertSQL.Add('Insert into kart_tovar (naim, izg, mod, kat, prim, )');
  IBDS1.InsertSQL.Add('height, width, dlina ) values (:name, :izgot, :model');
  IBDS1.InsertSQL.Add(', :kateg, :opis, :vis, :shir, :dlin)');
  IBDS1.ParamByName('name').AsTrimString:=txtNaim.Text;
  IBDS1.ParamByName('izgot').AsInteger:=kodizg;
  IBDS1.ParamByName('model').AsInteger:=kodmod;
  IBDS1.ParamByName('kateg').AsInteger:=StrToInt(txtKat.Text);
  IBDS1.ParamByName('opis').AsTrimString:=txtPrim.Text;
  IBDS1.ParamByName('vis').AsInteger:=StrToInt(txtHeight.Text);
  IBDS1.ParamByName('shir').AsInteger:=StrToInt(txtWidth.Text);
  IBDS1.ParamByName('dlin').AsInteger:=StrToInt(txtDlina.Text);
  IBDS1.Insert;
  IBDS1.Post;
Я заполняю в таблице все поля кроме поля, где хранится первичный ключ (код товара.) Это поле заполняется значениями из генератора. Так вот, при вставке выдается ошибка:
Size Mismatch - Field id_tovar size is too small for data

Подскажите, пожалуйста, что я делаю не так?
...
Рейтинг: 0 / 0
Вставка
    #32583478
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
генератор перевалил за максимально допустимое значение поля?
...
Рейтинг: 0 / 0
Вставка
    #32583486
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Генератор всего лишь на 10
...
Рейтинг: 0 / 0
Вставка
    #32583493
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и теперь - структуру таблицы и текст триггера, который, как я стелепатировал, заполняет поле кода товара...
...
Рейтинг: 0 / 0
Вставка
    #32583499
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TABLE KART_TOVAR (
    ID_TOVAR  INTEGER NOT NULL,
    NAIM      VARCHAR( 60 ) DEFAULT 'Имя не присвоено' NOT NULL,
    IZG       INTEGER NOT NULL,
    MOD       INTEGER DEFAULT  0  NOT NULL,
    KAT       INTEGER NOT NULL,
    ED_IZM    VARCHAR( 4 ) DEFAULT 'ШТ.' NOT NULL,
    GARANT    NUMERIC( 3 , 1 ) DEFAULT  0  NOT NULL,
    GRUPA     VARCHAR( 2 ) DEFAULT 'C' NOT NULL,
    GTD       VARCHAR( 20 ) DEFAULT 'Не введен' NOT NULL,
    VES       NUMERIC( 8 , 2 ) DEFAULT  0 . 0  NOT NULL,
    HEIGHT    INTEGER DEFAULT  0  NOT NULL,
    WIDTH     INTEGER DEFAULT  0  NOT NULL,
    DLINA     INTEGER DEFAULT  0  NOT NULL,
    GABARIT   COMPUTED BY ((height*width*dlina)/ 6000 . 0000 ),
    PRIM      CHAR( 300 ) DEFAULT 'Без примечания' NOT NULL
);


Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE TRIGGER NEW_ID_TOVAR FOR KART_TOVAR
ACTIVE BEFORE INSERT POSITION  0 
AS
begin
  if (new.id_tovar is null) then
     new.id_tovar=gen_id(id_tovar, 1 );
end
...
Рейтинг: 0 / 0
Вставка
    #32583552
vis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создание генератора забыл

кстати, называть генератор и поле одинаково, имхо, не хорошо
...
Рейтинг: 0 / 0
Вставка
    #32583562
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE GENERATOR ID_TOVAR;
SET GENERATOR ID_TOVAR TO 10;
...
Рейтинг: 0 / 0
Вставка
    #32583580
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я конечно не мастера дельфи, но здесь че-то не так


IBDS1.InsertSQL.Add('Insert into kart_tovar (naim, izg, mod, kat, prim, ) ');
IBDS1.InsertSQL.Add('height, width, dlina ) values (:name, :izgot, :model');
...
Рейтинг: 0 / 0
Вставка
    #32583586
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тип поля не менял ли часом?
...
Рейтинг: 0 / 0
Вставка
    #32583592
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В IBExpert все работает нормально. В SQL-редакторе пишу представленный выше запрос и все вставляется.
...
Рейтинг: 0 / 0
Вставка
    #32583626
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия IBX какая?
Свойство GeneratorField выставлял?
...
Рейтинг: 0 / 0
Вставка
    #32583629
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не выставлял. А что это?
...
Рейтинг: 0 / 0
Вставка
    #32583639
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Help читай.
И версию IBX обнови, если не обновлял.
...
Рейтинг: 0 / 0
Вставка
    #32583693
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выставил свойство. Ошибка не исчезла
...
Рейтинг: 0 / 0
Вставка
    #32583721
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что скажете насчет вот этого?
...
Рейтинг: 0 / 0
Вставка
    #32583752
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто нибудь может скинуть часть своего кода, где происходит запись в таблицу? Буду очень признателен.
...
Рейтинг: 0 / 0
Вставка
    #32583754
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feddчто скажете насчет вот этого?
Если не очепятка, то ошибка.
Но вообще, Роману нужно книжечки для начинающих почитать.
Так с TIBDataSet не работают.
Правой кнопкой мыши вызывается DataSet Editor , который позволяет
быстренько сгенерировать запросы для Modify, Insert, Delete, Refresh.
Далее, в программе с ним работают как с обычным DataSet.
Задавать запросы динамически в ран-тайме, в данном случае, не вижу необходимости.
Значения полей для Insert\'a передаются не через параметры, а через Fields.
И не до того как DataSet будет переведён в режим Insert, а после .
В общим, каша полная...
...
Рейтинг: 0 / 0
Вставка
    #32583781
doroshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, fedd - прав. Там какая-то лажа со скобками в первой строке.
Роман Новичек - ответь что-то по этому поводу.
...
Рейтинг: 0 / 0
Вставка
    #32583790
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я по этим книжкам и так пытаюсь сделать. Только вот нефига не работает. Я уже все способы перепробовал. Только при одном способе выдалась другая ошибка, типа в базу нельзя вставить, она только для чтения.
...
Рейтинг: 0 / 0
Вставка
    #32583791
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doroshkaКстати, fedd - прав. Там какая-то лажа со скобками в первой строке.
Роман Новичек - ответь что-то по этому поводу.

я к тому, что если нам скопировано сюда с ошибкой (а в проге на самом деле по-другому), то может, мы еще чего увидим.
...
Рейтинг: 0 / 0
Вставка
    #32583794
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Со скобками все впорядке. Но я сейчас попробую по вашему
...
Рейтинг: 0 / 0
Вставка
    #32583801
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дико извеняюсь. Со скобками действительно я лажанулся. Сейчас исправлю и попробую.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вставка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]